繁体   English   中英

Laravel 4数据透视表(很多)-我什么时候使用-> get()和:: with()

[英]Laravel 4 pivot (many to many) table - when do I use ->get() and ::with()

使用-> get()时,我的多对多关系没有任何结果。 我正在测试我与以下对象的关系:

第一部分工作。 我正在获取所有在数据透视表中包含test@email.com的嵌套。 但是,我从特定的用户ID带回结果。 我不想那样做。

Route::get('/test', function () {
  foreach(User::find(2)->nest()->where('inviteEmail', '=', 'test@email.com')->get() as $nest)
    echo $nest->name, ': ', $nest->pivot->inviteEmail, "</br>";
});

我想获取所有与电子邮件相关联的巢。 我认为这可以工作:

foreach(User::with('nest')->where('inviteEmail', '=', 'test@email.com')->get() as $nest)
  echo $nest->name, ': ', $nest->pivot->inviteEmail, "</br>";
});

但是我得到这个:

SQLSTATE [42S22]:找不到列:1054“ where子句”中的未知列“ inviteEmail”(SQL:从inviteEmail =?的users中选择*)(绑定:数组(0 =>'test@email.com',))

如果我放下->get()那么我会得到一个空白屏幕。 有任何想法吗?

要使用email = test@email.com获取所有嵌套,请使用“急切加载约束”。 假设您确实有一个Nest类,那就应该这样做:

$nests = Nest::with(array('user' => function ($query) {
    $query->where('nests_users.email', '=', 'test@email.com');
}));

您可以在官方文档中阅读更多内容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM