这是我的模特:(App\User.php
)
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
protected $connection = 'mysql';
protected $table = 'users';
public function hasAnyRole($roles)
{
if(is_array($roles)){
foreach ($roles as $role){
if($this->hasRole($role)){
return true;
}
}
} else {
if($this->hasRole($roles)){
return true;
}
}
return false;
}
public function hasRole($role)
{
if($this->role()->where('name',$role)->first()){
return true;
}
return false;
}
}
我需要在中间件中使用hasAnyRole()
方法。这是我在中间件中的代码:
.
.
if( $request->user()->hasAnyRole($roles) ) {
.
.
但是它抛出:
“调用未定义的方法
App\User::hasAnyRole()
”
请注意,$request->user()
存在。知道有什么问题吗?
答案 0 :(得分:-1)
您的代码没有错误。尝试清除缓存:
composer dump-autoload
php artisan clear-compiled
php artisan cache:clear