mysql - SQL 查询到 Eloquent

标签 mysql laravel eloquent one-to-many laravel-5.5

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

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/

相关文章:

php - 使用多个Laravel实例获取随机错误500。托管@ Rackspace

php - 为什么 Laravel 不加载使用 Laravel Breeze Starter Kit 安装的 Tailwind css 样式?

mysql - 带有左连接的一个查询中的多个计数 - 按什么分组?

mysql - 如何复制 MySQL 表(包括结构和索引)?

php - 将 Magento 安装复制到另一台本地计算机

mysql - Eloquent 添加年份格式的默认值

php - Laravel 结合两个表帖子 + 标签

php - echo JSON 编码不 echo 任何东西

php - Laravel Facebook-登录/丢失电子邮件

mysql - 在 Eloquent 中使用 groupBy 获取每组更多行