php - Laravel Eloquent 连接不相关的表?

标签 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->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/

相关文章:

javascript - 如何使用jquery取消选中复选框

java.lang.IllegalAccessError : org. apache.commons.dbcp.DelegatingPreparedStatement.isClosed()Z

php - MySQL 更新 "link"表

php - 带有 Bootstrap 模态表单的 AJAX 页面 - 提交不起作用

sql - SAS SQL 中带有条件语句的子查询

php - 将部分 dom 元素转换为带有 h​​tml 标签的字符串

php - 我可以通过 ID 恢复 PHP SESSION 吗?

php - 如何在 Symfony 中强制重新加载 javascript/css?

mysql - 在具有多个 WHERE 子句的查询中返回与 WHERE 子句匹配的列名

mysql select if sum greater 和 group by