laravel获取下一个DB请求的DB数据


public function show(AppModelsPerson $person){
$casts = DB::table('casts')->where('person', '=', $person->id)->get();
for($i=0;$i<count($casts);$i++){
$movies = DB::table('movies')->where('id', '=', $casts[$i]->movie)->get();
}
return view('person.showPerson', compact('person', 'movies'));
}

当我想预览视图中的电影时。它显示我只是最后一个。这是因为for,但如果我删除$casts[$i]。然后它就不知道是哪部电影了。我想抢先一步。如何发送所有$movies(演员阵容中的人在其中(结果以进行查看。我想我需要利用一些关系,但我不知道如何利用它们。寻求帮助

This is the casts structure
+"id": "4",
+"movie": "2",
+"person": "1",
+"role": "actor",
+"created_at": "2020-12-21 19:19:58",
+"updated_at": "2020-12-21 19:19:58",

for循环的每次迭代中都覆盖$movies变量,因此它将只具有最后一次迭代的值。

如果你不想使用模型和关系,并且想单独查询这些表,我不会使用for循环,因为你可以向数据库询问所有匹配一个集合的表。

我会从casts中获得所有的电影字段,并用它做一个whereIn

$casts = DB::table('casts')->where('person', $person->id)->pluck('movie');
$movies = DB::table('movies')->whereIn('id', $casts)->get();

最新更新