有4个表:用户,所有者,组,要求- Laravel雄辩
有业主和请求之间没有直接关系,我正在寻找一种方式来做些什么像这样:$ onwer-> requests,以获得与所有者相关的所有请求。
这里是事情是如何工作的:
每个用户都是在一组,每个组由所有者拥有,请求将用户创建和每个请求是一组(一个内有关/)。
表是这样的:
业主:ID,用户名
组:ID,姓名,owner_id,一年 用户:ID,用户名
GROUP_USER:ID,GROUP_ID邀请,USER_ID
要求:身份证, group_id,user_id,desc
创建所有者和组之间,或者请求和用户之间的关系很容易,但我怎样才能向所有者获取所有相关请求?另一件事是,我应该能够得到属于一个所有者的所有请求,这些请求属于组,其中声明像年=某事。
现在我在做一些愚蠢的事是这样的:
有一个组,并请求之间一对多的关系,这样我就可以得到一组的所有请求。(组的hasMany要求)
$groups = Group::where('owner_id', $owner_id)->get();
foreach($groups as $group)
foreach($group->requests as $request)
if($request->year == 2016)
$requests[] = $request;
您可能正在寻找'hasManyThrough'。你可以'返回$ this-> hasManyThrough(\ App \ Request :: class,\ App \ Group :: class);'。这种说法是“我是所有者类,通过组实体有很多请求”。由于你的'group'已经拥有'owner_id',并且你的请求有'group_id',它应该可以工作。 –
是的,它完成了这项工作。谢谢。我真的不知道为什么我从来没有读过laravel文档中的*有很多通过*部分。 – Ravexina