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