2017-10-30 3 views
0

Hey, ich mache einen Code, in dem ich foreach-Schleife verwenden, aber es gibt mir Fehler ungültigen Argument.Ungültiges Argument in Foreach-Schleife mit einem Modell

Schleife meiner Code ist

public function handle($request, Closure $next) 
{ 
    foreach(Auth::user()->User as $role){ 
      if($role->role == 'doctor') 
      { 
       return $next($request); 
      } 
     } 
     return redirect(''); 
} 

und das Modell ist

<?php 

namespace App; 

use Illuminate\Notifications\Notifiable; 
use Illuminate\Foundation\Auth\User as Authenticatable; 

class User extends Authenticatable 
{ 
use Notifiable; 

/** 
* The attributes that are mass assignable. 
* 
* @var array 
*/ 
protected $fillable = [ 
    'name', 'email', 'password', 
]; 

/** 
* The attributes that should be hidden for arrays. 
* 
* @var array 
*/ 
protected $hidden = [ 
    'password', 'remember_token', 
]; 

}

Bitte sagen Sie mir, was ich falsch mache.

Antwort

0

Sie können keine foreach für Auth: user(). Wenn Sie die Rolle eines Benutzers validieren möchten, können Sie das Benutzerobjekt abrufen, das die Anforderung ausführt, und die Rolle validieren. Beispiel:

public function handle($request, Closure $next) 
{ 
    if($request->user()->rol == 'admin'){ 
     return $next($request); 
    } 

    return redirect('/something'); 
} 
Verwandte Themen