Laravel Eloquent加入了无关的表格?

时间:2014-09-18 21:45:21

标签: php mysql sql laravel eloquent

我遇到了问题。我有两个独立的数据库,一个用于电影,另一个用于追随者。这样电影可以有特定的电影数据(标题,图像,导演)等,然后我有一个跟随表,以便用户可以关注电影。基本上这只是一个交叉表,它所拥有的只有id,userID,filmID。这通常用于如果用户进入电影页面,它检查是否存在记录,如果存在,则检查x,y,z。

现在在用户页面上,我试图列出他们关注的所有内容。所以目前我可以说。

    $following = Follow::where('userId', '=', $user->id)->orderBy('created_at', 'DESC')->get();

这将返回用户关注的所有内容。然而我的问题是我不想显示电影ID,我想显示图片,标题,导演等。然而,这些信息在电影表中。那么我怎么能说一个获得所有Follow实例的调用,但也抓住附加到它的电影行。这样我就可以了。 echo $ following->标题,它将显示电影标题。感谢

1 个答案:

答案 0 :(得分:0)

这就是我最终解决它的方法,这允许$ myquery->属性的相同过程,而不是超级复杂。

    $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请求来获取信息,然后将它们全部编译成对象$ followFilms。