在Laravel 3l中,我想通过一个有很多关系的人的雄辩来获得结果

在Laravel 3l中,我想通过一个有很多关系的人的雄辩来获得结果,laravel,laravel-3,Laravel,Laravel 3,我有三张桌子: 邀请、嵌套和用户 邀请具有嵌套id。 嵌套具有用户\u id 我想获得所有具有相同nest_id的用户。如何在elequent中实现这一点 这些模型有很多关系 我尝试在控制器中执行此操作: $users = User::with('invite')->where('invites.nest_id', '=', $id)->get(); 我得到这个错误: SQLSTATE[42S22]: Column not found: 1054 Unknown column

我有三张桌子:

邀请、嵌套和用户

邀请具有嵌套id。 嵌套具有用户\u id

我想获得所有具有相同nest_id的用户。如何在elequent中实现这一点

这些模型有很多关系


我尝试在控制器中执行此操作:

$users = User::with('invite')->where('invites.nest_id', '=', $id)->get();

我得到这个错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'invites.nest_id' in 'where clause'

SQL: SELECT * FROM `users` WHERE `invites`.`nest_id` = ?

Bindings: array (
  0 => '2',
)

这是说我没有nest_id列,但我有




Laravel关系不使用联接,因此关系中的其他表不可访问。对于涉及“多人”的关系,这通常更有效。这确实意味着你必须向后思考这样的事情——你需要拥有给定巢穴的邀请用户

$invites = Invite::with('user')->where('nest_id', '=', $nest_id);
foreach ($invites as $invite)
{
    $invite->user;
}

如果你发布你的模型,特别是nest和user,会有帮助的。谢谢William,刚刚添加了…哇。那很容易。似乎总是想得太多了。你关于“向后思考”的评论真的很有帮助。谢谢你,菲尔。与拉雷维尔共事很愉快。希望更多的人采纳。如果这个答案对你有帮助,你应该将它标记为正确答案(用户2038291.:)
class Nest extends Eloquent
{

public static $table = 'nests';

public function user()
{
    return $this->belongs_to('User');
}

public function idea()
{
    return $this->has_many('Idea');
}

public function invite()
{
    return $this->has_many_and_belongs_to('Invite');
}
$invites = Invite::with('user')->where('nest_id', '=', $nest_id);
foreach ($invites as $invite)
{
    $invite->user;
}