2017-05-28 10 views
0

認証ユーザーのロールの配列を評価しようとしています。 100と102は私がチェックしたいロールの値です。 Authユーザーにこれらのいずれかがある場合は、trueを返します。これは可能ですか?ここに私のコードは、これまでのところです:Auth UserのロールIDがLaravelの配列と一致するかどうか確認してください

if (Auth::user()->role_id == ([100, 102]) { 
//process code here. A lot of code. 
} 

私は処理コードがたくさんあると、ファイルが長くなりますと一度に一つを繰り返してチェックしたくありません。

+0

https://laravel.com/docs/5.4/helpers#method-array-has – Kyslik

+0

([in_array]と行くhttp://php.net/in_array)? – hassan

答えて

2

in_array()は間違いなくあなたのために動作します。この場合

if (in_array(auth()->user()->role_id, [100, 102])) 

を、あなたはまた、現在のユーザーは、いくつかの役割や役割グループに属しているかどうかを確認するglobal helperを定義することができます。

if (! function_exists('isAdmin')) { 
    function isAdmin() 
    { 
     return in_array(auth()->user()->role_id, [100, 102]); 
    } 
} 

次に、あなたをコントローラー、モデル、カスタムクラスなどでこのヘルパーを使用できるようになります:

if (isAdmin()) 
とにもブレードビューで

@if (isAdmin()) 
+0

これはサービスプロバイダーを通じて行うことができますか? –

+0

@EdenWebStudio正確には何ですか? –

+0

あなたがこのリンクで回答した場合は、ヘルパーファイルを作者のautoloadに追加することをお勧めします。サービスプロバイダで公開関数レジスタを使用することはできますか? –

1
As hassan said you can use in_array() 

$a= Auth::user()->role_id; 
$b= in_array(100, $your_array); 
$c= in_array(102, $your_array); 

if ($a == $b && $a == $c) { 
    //process code here. A lot of code. 
} 
関連する問題