前提・実現したいこと
つぶやきの投稿をpostsテーブルに保存したい。
発生している問題・エラーメッセージ
★投稿前
https://gyazo.com/9ccb7bdf4cf701ac3e3b10bfc7b4e103
★投稿後
https://gyazo.com/ff21b0497ac183c581091a987f8e7898
投稿を行うと投稿内容が消えたトップ画面になります。
完成したかと思い、ターミナルでテーブルのカラムにちゃんと保存されているかチェックしようとしたところ、
下記のとおり「Empty set」と表示がされてしまいました。
https://gyazo.com/0e7802693611f52bd726fe879a1a73f9
該当のソースコード
routes/web.php
php
1Route::resource('top', 'PostsController', ['only' => ['index', 'create', 'store', 'show', 'edit', 'update', 'destroy']]);
resources/views/views/posts/index.blade.php
php
1@extends('layouts.login') 2 3@section('content') 4<!-- 4.1 投稿フォームの設置 --> 5<div class="container"> 6 <div class="row justify-content-center"> 7 <form method="POST" action="{{ route('top.store') }}"> 8 {{ csrf_field() }} 9 10 <div class="form-group"> 11 <div class="form-group-image"> 12 <!-- 初期アイコン --> 13 <p><img src="images/dawn.png" class="rounded-circle"></p> 14 </div> 15 <div class="form-group-text"> 16 <textarea class="form-control" name="text" style="border:none;" required rows="4" placeholder="何をつぶやこうか...?"></textarea> 17 </div> 18 <div class="form-group-icon"> 19 <input src="images/post.png" type="image"></input> 20 </div> 21 </div> 22 23 </form> 24 </div> 25</div> 26@endsection 27
app/Models/Post.php
php
1<?php 2 3namespace App; 4 5use Illuminate\Database\Eloquent\Model; 6 7class Post extends Model 8{ 9 // 4.1 ログインユーザーのつぶやきを登録 10 public function postStore(Int $user_id, array $data) 11 { 12 $this->user_id = $user_id; 13 $this->posts = $data['text']; 14 $this->save(); 15 16 return; 17 } 18} 19
app/Http/Controllers/PostsController.php
php
1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use Illuminate\Support\Facades\Validator; 7use App\User; 8use App\Post; 9use App\Follow; 10 11class PostsController extends Controller 12{ 13 // 3.3 サイドバー/フォロー,フォロワー数の表示 14 public function index(User $user, Follow $follow) 15 { 16 $follow_count = $follow->getFollowCount($user->id); 17 $follower_count = $follow->getFollowerCount($user->id); 18 19 return view('posts.index', [ 20 'follow_count' => $follow_count, 21 'follower_count' => $follower_count 22 ]); 23 } 24 25 // 4.1 ログインユーザーのつぶやきを登録 26 public function store(Request $request, Post $post) 27 { 28 $user = auth()->user(); 29 $data = $request->all(); 30 $validator = Validator::make($data, [ 31 'posts' => ['required', 'string', 'max:150'] 32 ]); 33 34 $validator->validate(); 35 $post->postStore($user->id, $data); 36 37 return redirect('posts'); 38 } 39}
補足情報
作成の参考にしたサイトはこちらです。
https://qiita.com/namizatork/items/c9ed67f98fc3e5ce67c7
以上となります。
初心者ですが、どうぞよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。