2017-03-16 62 views
2

當我在刀片中調用我的方法時,發生此錯誤。調用未定義的方法stdClass :: Laravel 5.3

我的模型

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; 
}} 

然後在我的home.blade.php

@foreach($users as $user) 
      {{ $user->hasRole("Admin") }} 
      <tr> 
       <form action="{{ route("admin.assignrole") }}" method="get" accept-charset="utf-8"> 
       {{ csrf_field() }} 
       <td>{{ $user->name }}</td> 
       <td>{{ $user->email }}</td> 
       <td><input type="checkbox" name="admin" value="admin"></td> 
       <td><input type="checkbox" name="cultura" value="cultura"></td> 
       <td><input type="checkbox" name="opinion" value="opinion"></td> 
       <td><button type="button" class="btn btn-primary">Asignar</button></td> 
       </form> 
      </tr> 
     @endforeach 

但i'm越來越: 「FatalErrorException在4ec2afb0bd7b9558404eeeb89a6d9200e0c5639a.php線18: 調用未定義的方法stdClass的:: hasRole()「

我不知道爲什麼;

+1

因爲'$ users'中的元素顯然不是'User'類的實例,而是'StdClass'的實例。 – CBroe

+0

非常感謝您的快速回答! 其我的第一個proyect惠特laravel,我正在學習 有一個簡單的方法來獲取我的用戶實例? 謝謝! –

回答

0

感謝CBroe的幫助,我想出了什麼是問題。 是使用查詢生成器讓我的用戶的IM將它傳遞給我的看法,現在用雄辯的型號i'm和所有的作品確定

解決方案: 在我的控制器類:

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

感謝幫助

相關問題