実現したいこと
- Laravelの掲示板で投稿したユーザーと内容を投稿一覧に反映させたい
前提
Laravelで掲示板を作成しています。
新規投稿画面でログインしているユーザー名を名前欄に表示し、投稿内容を入力できるようにしています。
ここに入力されているユーザー名と内容をcreateFormメソッドに渡し、投稿一覧(index.blade.php)に表示したいです。
発生している問題・エラーメッセージ
Illuminate\Database\QueryException SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'contents' cannot be null (SQL: insert into `posts` (`contents`) values (?)) http://127.0.0.1:8000/post/create
該当のソースコード
PostController.php
1public function create(Request $request) //$request変数に値が渡される 2 { 3 $contents = $request->input('newContents'); 4 DB::table('posts')->insert([ 5 'contents' => $contents 6 ]); 7 $name = $request->input('userName'); 8 DB::table('posts')->insert([ 9 'user_name' => $name 10 ]); 11 return redirect('/index');//index.blade.phpに遷移 12 }
createForm.blade.php
1@extends('layouts.app') <!--「app.blade.php」の方が親となり、「index.blade.php」の方が子のビューファイルとなる--> 2@section('content') <!--囲っている部分の名前付け--> 3<div class='container'> 4 <h2 class='page-header'>新しく投稿する</h2> <!--小見出し--> 5 {!! Form::open(['url' => 'post/create']) !!} <!--urlが 'post/create' となっているところにフォームの値を送る--> 6 <div class="form-group"> 7 {{ Form::label('user_name', '名前:') }} <!-- デフォルトでユーザー登録した名前を入力しておく。ユーザーの判断で変更可能 --> 8 {{ Form::input('text', 'userName', Auth::user()->name) }} 9 </div> 10 <div class="form-group"> 11 {!! Form::input('text', 'newContents', null, ['required', 'class' => 'form-control', 'placeholder' => '投稿内容']) !!} 12 </div> 13 <button type="submit" class="btn btn-success pull-right">追加</button> 14 {!! Form::close() !!} 15</div> 16@endsection
index.blade.php
1@extends('layouts.app') <!--「app.blade.php」の方が親となり、「index.blade.php」の方が子のビューファイルとなる--> 2@section('content') <!--囲っている部分の名前付け--> 3<div class='container'> <!--containerクラス--> 4 <p class="pull-right"><a class="btn btn-success" href="/create-form">投稿する</a></p> <!--投稿するボタン--> 5 <h2 class='page-header'>投稿一覧</h2> <!--タイトル--> 6 <table class='table table-hover'> <!--表--> 7 <tr> <!--表の1行--> 8 <th>名前</th> <!--表の見出し--> 9 <th>投稿内容</th> <!--表の見出し--> 10 <th>投稿日時</th> <!--表の見出し--> 11 <th></th> <!--表の見出し--> 12 <th></th> <!--表の見出し--> 13 </tr> 14 @foreach ($lists as $list) <!--$listsに入っている値を$listに格納し順番に表示--> 15 <tr> <!--containerクラス--> 16 <td>{{ $list->user_name }}</td> <!--$listの中のusernameを表示--> 17 <td>{{ $list->contents }}</td> <!--$listの中のcontentsを表示--> 18 <td>{{ $list->created_at }}</td> <!--$listの中のcreated_atを表示--> 19 <td><a class="btn btn-primary" href="/post/{{ $list->id }}/update-form">更新</a></td> <!--更新ボタン--> 20 <td><a class="btn btn-danger" href="/post/{{ $list->id }}/delete" onclick="return confirm('こちらの投稿を削除してもよろしいでしょうか?')">削除</a></td> <!--削除ボタン--> 21 </tr> 22 @endforeach <!--foreach文を閉じる--> 23 </table> 24</div> 25@endsection
試したこと
カラム作成時にnot nullは入力されていない
マイグレーションファイルの見直し
渡す変数が誤っていないか確認
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。