gpt4 book ai didi

php - 插入具有多个外键的 Laravel 模型

转载 作者:可可西里 更新时间:2023-11-01 12:26:05 24 4
gpt4 key购买 nike

这是我的情况:用户可以对视频发表评论。评论属于视频和用户。我的模型看起来像这样:

class Comment extends Eloquent {
public function video()
{
return $this->belongsTo('Video');
}

public function user()
{
return $this->belongsTo('User');
}
}

class User extends Eloquent {
public function comments()
{
return $this->hasMany('Comment');
}
}

class Video extends Eloquent {
public function comments()
{
return $this->hasMany('Comment');
}
}

我正在尝试插入评论:

$comment = new Comment;
$comment->content = 'content';
Auth::user()->comments()->save($comment);

这会从 SQL 中引发 Integrity constraint violation 错误,因为它只更新一个外键。以相反的方式(保存到视频)产生相同的结果。如何同时将它添加到两个模型,同时更新两个外键?

最佳答案

您现在遇到的问题是您正在延迟加载 Auth::usercomments

我相信你可以做的一件事是在 Eloquent 模型中使用 associate 方法,请试试看它是否适合你的特定需求。

// Get the video of the comment relation
$video = Video::find(Input::get('video_id')) ;

// Use the associate method to include
// the id of the others model
$comment = new Comment;
$comment->content = 'content';
$comment->user()->associate(Auth::user());
$comment->video()->associate($video);
$comment->save();

关于php - 插入具有多个外键的 Laravel 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22884898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com