SQL 查询 Eloquent

SQL query to Eloquent

为了实现一个基本的关系系统,我遵循了网站建议的这个模型:

user_relationship:
------------------
- user_1
- user_2
- status
- user_action

其中 user_1user_2user_action 是引用 users.iduser_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'

这个查询应该 return 用户是 user_1user_2 的所有元组。

我对 Eloquent 有非常基本的了解,所以我很难完成这项工作,但因为我看到很多人说最好尽可能使用 Eloquent我想使用它。

你做错了。更好的解决方案是在模型中使用关系。 您可以建立如下关系:

  • 一对一
  • 一对多
  • 多对多
  • 有很多通过
  • 多态关系
  • 多对多多态关系

这将节省您的时间,请阅读: https://laravel.com/docs/5.5/eloquent-relationships