我遇到了问题。我有两个独立的数据库,一个用于电影,一个用于关注者。这样电影就可以有特定的电影数据(标题、图像、导演)等,然后我有一个关注表,以便用户可以关注电影。基本上这只是一个交叉表,里面只有 id、userID、filmID。这通常用于如果用户转到电影页面,它会检查记录是否存在,如果存在则检查 x、y、z。
现在,在用户页面上,我尝试列出他们关注的所有内容。所以目前我可以说。
$following = Follow::where('userId', '=', $user->id)->orderBy('created_at', 'DESC')->get();
这将返回用户正在关注的所有内容。然而我的问题是我不想显示电影 ID,我想显示图片、标题、导演等。但是该信息位于电影表中。那么我该怎么说做一个获取所有 Follow 实例但也获取附加到它的电影行的调用呢?这样我就可以走了。 echo $following->title 就会显示电影标题。谢谢
最佳答案
这就是我最终解决它的方法,这允许 $myquery->attribute 进行相同的过程,而不会变得 super 复杂。
$followingUsers = Follow::where('userId','=', $user->id)->get();
$followingFilms = Follow::where('userId','=', $user->id)->get();
$followedFilms = new stdClass();
$i = 0;
foreach ($followingFilms as $follow)
{
$followedFilm = new stdClass();
$film = Film::where('id','=', $follow->filmId)->first();
$followedFilm->title = $film->title;
$followedFilm->coverUrl = $film->image;
$followedFilm->slug = $film->slug;
$followedFilm->id = $film->id;
$followedFilms->$i = $followedFilm;
$i++;
}
这会获取下表的每个对象,发出一个 sql 请求来获取信息,然后将其全部编译到对象 $followedFilms 中。
关于php - Laravel Eloquent 连接不相关的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25922902/