在Laravel一对多关系中插入数据失败

时间:2017-10-12 13:23:03

标签: php mysql laravel laravel-5 eloquent

我尝试在一对多关系中插入一些数据,我遇到了这种错误:

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', 'CommentsController@save');

这是我的控制人员:

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-&gt; id,它的值为我的文章ID。但我不知道为什么它说它没有价值。感谢。

1 个答案:

答案 0 :(得分:1)

你应该试试这个:

请在Comment模型中添加以下代码并检查:

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