2017-05-30 12 views
2

私はコメントセクションをコーディングしています。私は以下のようにCommentsControllerストアメソッドを介して、経路上のそれらのデータを取得していますLaravelがDBにすべてのデータを挿入していません

<div class="comment"> 
    <h2>Leave a comment</h2> 
    <form method="post" action="/blog/{{$post->id}}/comments"> 
    {{csrf_field()}} 

    <input type="text" name= "name" class="textbox" value="Name" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Name';}"> 
    <input type="text" name="email" class="textbox" value="Email" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Email';}"> 
    <textarea value="Message:" name="body" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Message';}">Message</textarea> 

    <div class="smt1"> 
     <input type="submit" value="add a comment"> 
    </div> 
    </form> 
</div> 

Route::post('/blog/{post}/comments','[email protected]'); 

次に、コントローラのメソッドを介してDBにそれらを保存する: `

私は、下記のフォームからユーザデータを取得しています
public function store(Post $post){ 


    Comment::create([ 
     'body' => request('body'), 
     'email' =>request('email'), 
     'name' =>request('name'), 
     'post_id' => $post->id 
    ]); 


    return back(); 
} 

問題は、私がデータベースにアクセスしたときにボディーフィールドが完全に挿入されるということですが、post_id、name、emailはdatabseに挿入されません。

私は、私は、フォームからのデータは完全に罰金を得るが、私は彼らがデータベースに挿入され得ることができないnamedie;dumpdd();email$post->idを行っているフォームからデータを取得していた場合、私がチェックしていますか?

答えて

6

コメントモデルの保護された$ fillable配列にpost_id、name、およびemailの列がリストされていますか?入力可能なものとしてリストされていない場合は入力されません。

+0

https://laravel.com/docs/5.4/eloquentここでそれについて

$comment = new Comment; $comment->body = request('body'); $comment->email = request('email'); $comment->name = request('name'); $comment->post_id = $post->id; $comment->save(); 

続きを読む、モデル$警備プロパティに除外された列を設定します。 –

1

モデルでcreate()メソッドを使用すると、フィールドが大量に割り当てられます。したがって、割り当てることができるすべてのフィールドを使用してモデルの$fillableプロパティを設定するか、モデル内の$guardedプロパティを設定して、フィールドの割り当てを保護する必要があります。これらのプロパティのうち1つだけを設定し、両方を設定しないようにしてください。

場合によっては、fillableプロパティをこれに設定する必要があります。

protected $fillable = [ 
    'name', 'email', 'body', 'post_id' 
]; 

同時に、このような新しいモデルを作成するときに一括割り当てについて心配する必要はありません。すべてが充填可能であれば別の有用なトリックがある

関連する問題