调用未定义的方法stdClass :: Laravel 5.3

时间:2017-03-16 13:30:25

标签: laravel-5

当我在刀片中调用我的方法时出现此错误。

我的模特

$ curl --anyauth --user admin:admin -X GET \
  "http://localhost:8000/LATEST/resources/last-login?rs:username=admin"

然后在我的home.blade.php

class User extends Authenticatable{
use Notifiable;

public function roles(){
    return $this->belongsToMany('App\Role', 'user_roles', 'user_id', 'role_id');
}

public function hasAnyRole(){
    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->roles()->where("name", $role)->first())
        return true;
    else
        return false;
}}

但我得到了: “4ec2afb0bd7b9558404eeeb89a6d9200e0c5639a.php第18行中的FatalErrorException: 调用未定义的方法stdClass :: hasRole()“

我无法理解为什么;

1 个答案:

答案 0 :(得分:1)

感谢CBroe的帮助,我想出了问题所在。 是我使用查询构建器让我的用户将它传递给我的视图,现在我使用Eloquent模型,所有工作正常

解决方案: 在我的控制器类中:

//$users = DB::table('users')->get();//Query Builder
$users = User::all();//Eloquent
return view('admin.home', compact("users"));

感谢您的帮助