与雄辩的多对多关系

时间:2014-10-24 09:14:49

标签: laravel eloquent

我有两张桌子。 useruser_user。在表user中,我保存了在网站上注册的用户。这些用户可以互相关注,从而产生交叉表user_user

这些是字段:

user      : id_user | username
user_user : id_user | id_userseguito

id_userseguito是被关注用户的ID。

我应该能够在Eloquent中创建一个函数,该函数传递与表id_useruser_user相关联的用户ID,以便返回该用户所关注的用户的所有用户名。

正常的查询是:

SELECT user.username FROM user, user_user WHERE user_user.id_user = $id_user AND user_user.id_userseguito = user.id_user

但是如何将此查询翻译成Eloquent?

我使用User函数设置了课程UserUser和课程belongToMany()

1 个答案:

答案 0 :(得分:0)

我不太确定,因为我还是Laravel的初学者。但我仍然想尝试给你一个答案。所以你的代码看起来像这样:

$Users = User::with('useruser')->where('id_userseguito', '=', $id)->get(); 

也许是这样的:

$Users = User::with(array('useruser' => function($query)
{
    $query->where('id_userseguito', '=', $id);

}))->get();

在您的用户模型中,您应该拥有useruser()方法。像这样:

public function useruser()
    {   

        return $this->belongsToMany('UserUser');
    }

我仍然是Laravel的初学者。所以也许我的答案还不够好。