我有添加评论的功能:
public function addComment(Request $request)
{
$request->validate([
'body' => 'required',
]);
$entry = new Comment();
$entry->body = $request->body;
$entry->save();
return redirect('/');
}
我还需要传入电影表id,在评论表中称为film_id。该字段不能为空。以上内容并未考虑此字段,因此我收到以下消息:
SQLSTATE [23000]:完整性约束违规:19 NOT NULL 约束失败:comments.film_id(SQL:插入“注释” (“body”,“updated_at”,“created_at”)值
我试图通过做下面的变化来传递电影ID,但没有成功。
public function addComment(Request $request, $id)
{
$request->validate([
'body' => 'required',
'film_id' => 'required',
]);
$entry = new Comment();
$film_id = Film::find($id);
$entry->body = $request->body;
$entry->film_id = $film_id;
$entry->save();
return redirect('/');
评论模型:
class Comment extends Model
{
public function film()
{
return $this->belongsTo(Film::class);
}
}
电影模特:
class Film extends Model
{
public function comments()
{
return $this->hasMany(Comment::class);
}
}
答案 0 :(得分:2)
你没有传递id,你正在传递电影对象
.a
或
public function addComment(Request $request, $id)
{
$film = Film::find($id);
$entry = new Comment();
$entry->body = $request->body;
$entry->film_id = $film->id;
$entry->save(); //your comment is saved with proper film_id
}