Left Join - 在 Eloquent 中

Posted

技术标签:

【中文标题】Left Join - 在 Eloquent 中【英文标题】:Left Join - In Eloquent 【发布时间】:2020-06-28 05:48:12 【问题描述】:

我想根据user_id连接user表和like表

所以我有这个模型

user.php

public function like()

    return $this->belongsTo('App\Models\Like', 'users_id', 'id');

like.php

public function user()

    return $this->belongsTo('App\Models\User', 'id', 'user_id');

还有我的查询

$mentor = $this->article->with("articlecategory")->with(["user.like"])->orderby("id", "DESC")->get();

我想返回“用户”内的“喜欢”表,但它不起作用。我想离开加入它。

我做错了什么?

【问题讨论】:

您想从likes 表中获取用户ID 的所有赞吗? 只有登录的user_id。我想知道用户是否已经喜欢这篇文章,这就是我想离开加入它的原因,但我不知道如何在雄辩中编辑**抱歉,是的,我想获得用户 ID 的所有赞 我更新了我的答案,我想获得该用户 ID 的所有赞 【参考方案1】:

好吧,您需要使用one-to-many 关系来获得指定用户的喜欢。为此,您需要在User 模型上使用hasMany() 方法,如下所示:

<?php

public function likes()

    return $this->hasMany('App\Models\Like', 'user_id', 'id');

【讨论】:

我不知道为什么它仍然没有显示在用户的数组下。 哦,我现在看到了我的错误。我的“用户”错字了。谢谢!

以上是关于Left Join - 在 Eloquent 中的主要内容,如果未能解决你的问题,请参考以下文章

MySQL/Eloquent force id by left join 即使为空

SQLAlchemy ORM:LEFT JOIN LATERAL()正确

LEFT JOIN ON AND 和LEFT JOIN ON WHERE区别

Mysql - LEFT JOIN 比 INNER JOIN 快

如何使用 Django 执行 SQL LEFT JOIN?

SQL中的left outer join,inner join,right outer join用法详解