如果用戶是管理員,我如何獲取所有記錄,如果不是,則管理員只返回用戶帖子。我已經嘗試Laravel 5如果用戶是管理員,請選擇所有記錄
Where('idUser',"=",$IdCurrentUser)->orWhere('Administrador','=','Administrador')->get();
在此先感謝
如果用戶是管理員,我如何獲取所有記錄,如果不是,則管理員只返回用戶帖子。我已經嘗試Laravel 5如果用戶是管理員,請選擇所有記錄
Where('idUser',"=",$IdCurrentUser)->orWhere('Administrador','=','Administrador')->get();
在此先感謝
這取決於你如何檢查user is not an admin
部分,最有可能與驗證::用戶(),但問題是你申請$query->where
主要where
內只如果不是管理員
->where(function($query) use ($IdCurrentUser) {
if (/* user is not an admin */) {
$query->where('idUser',"=",$IdCurrentUse);
}
})->get();
我如何使用這個解決方案?我嘗試了'$ post = Post :: Where(function($ query)use($ IdCurrentUser){if user ,$ IdCurrentUse); } }) - > get();'但是我得到一個錯誤 –
你應該自己指定if()條件。 –
你可能想返回認證用戶,好像
$isAdmin = false;
if (Auth::check())
{
$user = Auth::user();
if ($user->getName() == 'Administrador')
{
$isAdmin = true;
}
}
再加入where
如果不是管理員:
if (!$isAdmin)
{
$postCollection->where('id', '=', $user->getId());
}
編輯:
另請參閱here以瞭解如何使用實際角色進行管理員檢查,而不是簡單名稱比較(這是正確的方法)。
我想要該查詢驗證是否爲admin等於true,然後顯示所有其他顯示其一條記錄。使用獨特的查詢來做到這一點 –
你在談論「職位」。 對我來說,你不太可能在「posts」表中存儲用戶名和*名。但是,如果情況如此,那麼只有這樣才能做到。 否則需要查詢兩次,或者用post表加入users表,這對於很多行來說效率很低。 – Victor
還有另外一種方法可以創建兩個查詢 –
如何當前用戶你知道用戶是否是管理員?是因爲他們的'name'設置爲'Administrador'? – James
哪位用戶? 你的意思是登錄的用戶? – Victor
'$ enum'是什麼? – Victor