2017-10-12 52 views
0

我尝试在一个插入一些数据对许多关系,我得到了这样那样的错误:插入数据未能对Laravel一对多的关系

SQLSTATE[HY000]: General error: 1364 Field 'article_id' doesn't have a default value (SQL: insert into `comments` (`comment`, `updated_at`, `created_at`) values (this is comment, 2017-10-12 13:14:07, 2017-10-12 13:14:07)) 

这里是我的路由器:

Route::post('/article/{article}/comment', '[email protected]'); 

这里的我的控制器:

public function save(Article $article){ 
     Comment::create([ 
      'comment' => request('comment'), 
      'article_id' => $article->id 
     ]); 
     return back(); 
} 

这里是我的形式,我用它来发布数据:

<form method="post" class="form-horizontal" action="/article/{{ $article->id }}/comment"> 
     {{ csrf_field() }} 
     <div class="box-body"> 
      <div class="form-group"> 
       <label for="comment" class="col-sm-2 control-label">Comment</label> 
       <div class="col-sm-10"> 
        <textarea class="form-control" rows="3" id="comment" name="comment"></textarea> 
       </div> 
      </div> 
      <div class="box-footer"> 
       <button type="submit" class="btn btn-primary">Simpan</button> 
      </div> 
     </div> 
</form> 

我尝试打印我的$ article-> id,它有我的文章ID的值。但我不知道它为什么说它没有价值。谢谢。

+0

请检查评语表 –

+0

@AddWebSolutionPvtLtd“的article_id”字段我已经查了,我已经把一些数据手动,它工作正常。 – Ying

+0

请将article_id字段中的默认静态值设置为: 评论:: create([ 'comment'=> request('comment'), 'article_id'=> 1 ]); –

回答

1

你应该试试这个:

Comment模型添加下面的代码,并检查:

protected $fillable = ['comment','article_id']; 
+0

@亨拉:请把你的评论表结构 –

+0

哦不知道发生了什么,但现在它的工作。奇怪的是,虽然我已经写了可填写的东西,但它在第一次不起作用。 – Ying

+0

@亨拉:很高兴帮助henera,如果我的答案是您的解决方案,然后upvote我的答案 –