【发布时间】:2021-11-11 03:50:24
【问题描述】:
我遇到了 eloquent 的问题,我有一个控制器有这样的代码
$pivot = MovieGenre::where('movie_id', $id)->delete();
if($request->input('genres')){
foreach ($request->input('genres') as $genre) {
$pivot = MovieGenre::create([
'movie_id' => $id,
'genre_id' => $genre,
]);
}
}
例如还有 2 个相同的枢轴正在工作,这些枢轴是相同的,并且控制器的制作方式相同 当我尝试使用它时,我收到了一个错误
此查询在查询中缺少“genre_id”,但我在数据透视模型的 CREATE 方法中给出了该字段。 模型文件为空。只是'扩展枢轴'
【问题讨论】:
-
当你像普通模型一样直接使用
Pivot时,为什么要扩展它? -
@lagbox 哦,我以为这是在那里添加记录的唯一方法,还有其他方法吗?
-
自定义数据透视模型用于在您的模型之间使用“属于多方关系”设置时使用...您可以让您的
MovieGenre模型扩展Model并使这些字段可填写 -
@lagbox 我有 belongsToMany 关系,这就是它扩展支点的方式
-
您在该示例中根本没有使用该关系,而是直接与数据透视表交互;在这个例子中没有 Eloquent 关系......如果你使用从电影到流派的实际关系,你可以用 1 行代码完成你现在正在做的所有事情