ユーザーがadminの場合はすべてのレコードを取得し、管理者でない場合はユーザーの投稿のみを返します。Laravel 5ユーザーがadminの場合はすべてのレコードを選択
if (!$isAdmin)
{
$postCollection->where('id', '=', $user->getId());
}
編集:私はすでに
ユーザーがadminの場合はすべてのレコードを取得し、管理者でない場合はユーザーの投稿のみを返します。Laravel 5ユーザーがadminの場合はすべてのレコードを選択
if (!$isAdmin)
{
$postCollection->where('id', '=', $user->getId());
}
編集:私はすでに
これは、認証と最も可能性の高い、user is not an admin
部分を確認する方法はあなた次第です::ユーザー()が、ポイントは、あなたが唯一の管理者
->where(function($query) use ($IdCurrentUser) {
if (/* user is not an admin */) {
$query->where('idUser',"=",$IdCurrentUse);
}
})->get();
このソリューションをどのように使用しますか? {'idUser'、 "="(idUser '、 "=" idUser ")}を使用すると、$ post = Post ::を試してみると、(function($ query)use {$ IdCurrentUser} { {/ * userが管理者でない* /){ $ query-> 、$ IdCurrentUse); } })> get(); 'しかしエラーが出る –
if()条件を自分で指定する必要があります。 –
$isAdmin = false;
if (Auth::check())
{
$user = Auth::user();
if ($user->getName() == 'Administrador')
{
$isAdmin = true;
}
}
のように、認証されたユーザーを返すようにしたい
その後、いない管理者場合where
を追加し、事前に
Where('idUser',"=",$IdCurrentUser)->orWhere('Administrador','=','Administrador')->get();
感謝を試してみてください。
また、簡単な名前の比較(これは適切な方法)ではなく、管理者の確認に実際の役割を使用する方法については、hereをチェックしてください。
query verifieがadminの場合はtrue、そうでない場合はすべて1つのレコードを表示します。ユニークなクエリを使用してそれを行う –
あなたは "投稿"について話しています。 私の場合、「posts」テーブルにユーザーID *と*の名前を格納することはほとんどありません。しかし、もしそうならば、それだけで、あなたはそれを行うことができます。 それ以外の場合は、2回クエリを実行するか、ユーザーテーブルをポストテーブルと結合する必要があります。これは、大量の行に対しては非常に非効率的です。 – Victor
もう1つの方法で2つのクエリを作成する –
ないで、現在のユーザーならば、メイン
where
内$query->where
を適用することですユーザーが管理者であるかどうか知っていますか?彼らは '名前'が '政治家 'として設定されているからですか? – Jamesどのユーザーですか? あなたはログインしたユーザーを意味しますか? – Victor
'$ enum'には何がありますか? – Victor