我遇到此错误的问题:
https://pastebin.com/cgm5yq0P
这是我的表格:
https://pastebin.com/bSU5X5EC
这是我的web.php(路由控制器):
Route::post('/komentarz', 'VideosController@postComment');
这是我的VideoController postComment函数:
https://pastebin.com/SYbEjB8H
这是我的评论模型:
https://pastebin.com/SxHX6gTP
这是我的用户模型评论功能:
public function comments() {
return $this->hasMany('App\Comment');
}
这是我的视频模型评论功能:
public function comments(){
return $this->belongsToMany('App\Comment')->withTimestamps();
}
最后,迁移文件名为create_comments_table:
https://pastebin.com/2cHscQfq
我的路线:
https://pastebin.com/ki8FZ0C6
请帮帮我..我不知道有什么不对
答案 0 :(得分:1)
你的外键错了。将迁移更改为此。
$table->unsignedInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->unsignedInteger('video_id');
$table->foreign('video_id')->references('id')->on('videos')->onDelete('cascade');
修改:这会添加评论并将其附加到视频和用户。
// model fillable property
protected $fillable = [
'text', 'user_id', 'video_id',
];
// route
Route::post('/film/{id}/komentarz', 'VideosController@postComment');
// controller method
public function postComment(CreateCommentRequest $request, $id)
{
$video = Video::findOrFail($id);
$video->comments()->create([
'text' => $request->text,
'user_id' => auth()->id(),
]);
return 'works';
}
// form
{!! Form::open(['url' => "/film/{$video->id}/komentarz", 'method' => 'post','class' => 'form-horizontal']) !!}
<div class="form-group">
<div class="col-md-3 control-label">
{!! Form::label('text', 'Treść komentarza:') !!}
</div>
<div class="col-md-8">
{!! Form::textarea('text', null, ['class'=>'form-control', 'size' => '5x5']) !!}
</div>
</div>
<div class="form-group">
<div class="col-md-8 col-md-offset-3">
{!! Form::submit('Dodaj', ['class'=>'btn btn-primary btn-comment']) !!}
</div>
</div>
{!! Form::close() !!}
答案 1 :(得分:0)
在评论模型中,我在'fillable中看到'user',而不是'user_id'。我认为它应该是user_id。或者你可以使用
protected guarded = [];
而不是使用fillable
数组。