【发布时间】:2015-10-16 04:06:51
【问题描述】:
最近我遇到了访问和过滤深层嵌套关系的问题,所以我决定寻求帮助。
所以,我有这个数据库结构: http://s21.postimg.org/motrjy3dj/Screenshot_from_2015_07_24_12_14_51.png
我需要让一个项目中的所有团队,然后为每个团队分配(该团队的)用户。
到目前为止一切顺利,当我尝试为每个用户获取报价时,我的问题就开始了。用户只能为分配的团队提供一个报价,这给我带来了问题。
这是我的代码:
$project = Project::with("variants")
->with(array(
"teams" => function($query) {
$query->with(array(
"users" => function($query) {
$query->with("offers");
}
));
}
))
->find($projectID);
我在“用户”模型中有一个 hasManyThrough 关系“offers”,它返回给我用户的所有优惠,但实际上我只需要(一个)相关 team_user 表的优惠。
我尝试使用范围过滤报价,但这是一个糟糕的解决方案,因为对于每个用户,我都有额外的 db 查询..
有没有办法动态过滤这些优惠?
谢谢!
【问题讨论】:
标签: php laravel laravel-4 eloquent relationships