php - Laravel Eloquent - 表连接

标签 php mysql laravel laravel-4

我有一个问题需要帮助。我正在做一个出于学习目的的项目。

我有 2 个表,第一个是

USERS 其中包含 id(PK、AI)、用户名、电子邮件、密码等...

另一个名为

的表

friend

包含user_a(FK到users.id),user_b(FK到users.id),状态(0 - 待处理,1 - 已确认)...

假设当前登录用户的 ID 为 1。

我需要加入这两个表并获取当前登录用户的完整 friend 列表,因此查询表 friend ,其中 user_a 或 user_b = 当前登录的用户 ID,并获取他 friend 的所有数据(来自表用户)...那么我们可以这么说:

用户a = 1,用户b = 2 userb_a = 3,user_b = 1

我需要获取用户 2、3 的信息。

我希望你能明白我的需要。

顺便说一句,我知道如何在不使用 Eloquent 的情况下做到这一点,但我需要使用 Eloquent。

非常感谢!

最佳答案

您可以在 Users 和 Friends 表之间形成 hasMany() 关系

在用户模型中你必须编写

public function friends() {
  return $this->hasMany('Friend','user_a');
}

并且从数据库中获取数据时。

$user = User::with('friends')->find($userId);

使用预先加载,您可以获取当前登录用户的所有 friend 。

这里是 laravel 中关系的链接

http://laravel.com/docs/eloquent#relationships

关于php - Laravel Eloquent - 表连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25767330/

相关文章:

Mysql 安装程序显示错误 : Memoy could not be written

open-source - 用 laravel 构建的简单应用程序?

php get函数将表单传输到另一个页面,如果编辑回表单

php - 如何使用 laravel 添加跳转到功能

mysql - 在mysql中将月份名称显示为列名称

Laravel 如果条件在模板中不起作用?

mysql - 从 MySQL 的列中查找数组中的元素

php - [Zend框架1]使用gmail发送邮件

PHP session 变量 - 传递页面

php - 从数据数组中计算和搜索字符串