1
我正在使用Laravel 5.2。在我的应用程序中,如果用户是管理员,他可以看到所有组。否则,他只能看到他的群体。Laravel获取关系或所有对象
型号
public function groups() {
if ($this->isAdmin()) {
return \App\Group::get();
}
return $this->belongsToMany('App\Group');
}
查看
@foreach($user->groups as $group)
{{ $group->name }}
@endforeach
结果
如果用户是不是管理员上面的代码工作,但如果我得到这个错误用户是管理员
关系方法必须返回类型照亮\数据库\雄辩\关系的对象\关系
我尝试这样做,而不是:$user->groups() as $group
,当用户是管理员它的工作原理,但什么都不显示时,它不是管理员。
问题
我知道当我打电话的关系作为属性($user->groups
),它返回对象的集合。相反,如果我将它称为函数($user->groups()
),我会得到一个QueryBuilder实例。
我能做些什么来使用与我的观点相同的语法?
注意:我无法将数据库中的所有组添加到管理员,因为管理员必须没有组。
我已经使用额外的方法,但我写了belongsToMany内联来简化代码。我不知道有可能将关系作为模型中的属性。非常感谢! – Garric15