为了实现一个基本的关系系统,我遵循了网站建议的这个模型:
user_relationship:
------------------
- user_1
- user_2
- status
- user_action
在哪里user_1
, user_2
, user_action
是引用 users.id
的外键和 user_1 < user_2
以避免重复的元组。
但是我发现很难用 Eloquent (Laravel 5.5) 编写这个 SQL 查询:
SELECT user_1, user_2
FROM user_relationships
WHERE (user_1 = :user OR user_2 = :user) AND status = 'friends'
此查询应返回用户为 user_1
的所有元组或 user_2
.
我对 Eloquent 有非常基本的了解,所以我很难完成这项工作,但由于我看到很多人说尽可能使用 Eloquent 更好,所以我想使用它。
最佳答案
你做错了。更好的解决方案是在模型中使用关系。 您可以建立如下关系:
- 一对一
- 一对多
- 多对多
- 有很多通过
- 多态关系
- 多对多多态关系
这将节省您的时间,请阅读: https://laravel.com/docs/5.5/eloquent-relationships
关于mysql - SQL 查询到 Eloquent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46973068/