我有四个模型:OwnerCompany,所有者,用户和角色。
我想让所有OwnerCompanys急切地加载他们的所有者,并且还急于加载 具有名称'admin'角色的用户。
scope.pageData = {};
scope.hideIt = function () {
scope.pageData.showIt = false;
};
这在模型中加载但不限制用户,它们都被加载。
答案 0 :(得分:0)
未经测试。我认为你缺少相同或相同的操作员。
OwnerCompany::with('owner.users')->whereHas('owner.users.roles', function ($query) {
$query->where('name','like','admin');
})->get();
答案 1 :(得分:0)
我试试这个,如果工作那么告诉我。 未经过测试
1)。
OwnerCompany::with('owner.users.roles')->whereHas('owner', function ($query) {
$query->whereHas('users', function($qr){
$qr->whereHas('roles', function($q){
$q->where('name', 'admin');
});
});
})->get();
OR
2)。
OwnerCompany::with('owner.users.roles')->whereHas('owner.users.roles', function ($query) {
$query->where('name', 'admin');
})->get();
答案 2 :(得分:0)
如果我做对了,你希望每个include
对象包含OwnerCompany
对象,其中包含“admins”。我会做这样的事情。
Owner
和$ownerCompany = OwnerCompany::all();
return $ownerCompany->each(function ($company) {
$company->owner;
$company->owner->users->each(function ($user) {
return $user->hasRole('admin');
});
});
内部:
User
不幸的是,我现在无法测试,所以如果您有任何问题请告诉我。