模型出错 - call_user_func_array()期望参数1是有效的回调

时间:2014-12-02 20:56:37

标签: laravel laravel-4

我收到此错误:

call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\Auth\Guard' does not have a method 'getRole' (View: C:\wamp\www\lc2\laravel\app\views\account\profile.blade.php)

在模型User.php中,我有一个这样的函数。

public function getRole(){

       $roleid=Auth::user()->role;
       switch($roleid){
           case 1:
               $role='Administrator';
               break;
           case 2:
               $role='Manager';
               break;
           case 3:
               $role='Professor';
               break;
           case 4:
               $role='Student';
               break;
           default:
               $role='';
       }
       return $role;
}

在另一个页面profile.blade.php中,我获得了如下用户角色:

{{Auth::user()->getRole()}}

我做错了吗?

1 个答案:

答案 0 :(得分:1)

由于您已在当前用户上致电getRole(),为什么在Auth::user()->role内使用getRole()

这应该可以正常工作:

public function getRole(){

   switch($this->role){
       case 1:
           $role='Administrator';
           break;
       case 2:
           $role='Manager';
           break;
       case 3:
           $role='Professor';
           break;
       case 4:
           $role='Student';
           break;
       default:
           $role='';
   }
   return $role;
}