Ich erhalte diesen Fehler in meiner Sicht, als ich versuchte zu überprüfen, ob der Benutzer eine Rolle hat. Der genaue Fehler ist Call to undefined Methode Illuminate \ Database \ Abfrage \ Builder :: Rolle() (Ausblick: C: \ xampp \ htdocs \ Laravel-Projekte \ acl \ resources \ views \ admin.blade.phpAufruf zu undefinierter Methode Illuminate Database Query Builder :: role()
Dies ist der admin.blade.php Code
@foreach($users as $user)
<tr>
<td>{{$user->name}}</td>
<td>{{$user->email}}</td>
<td><input type="checkbox" {{ $user->hasRole('User') ? 'checked' : '' }} name="role_user"></td>
<td><input type="checkbox" {{ $user->hasRole('Author') ? 'checked' : '' }} name="role_author"></td>
<td><input type="checkbox" {{ $user->hasRole('Admin') ? 'checked' : '' }} name="role_admin"></td>
<td>{{$user->name}}</td>
<td>{{$user->email}}</td>
</tr>
@endforeach
hasRole() ist eine Funktion in dem Benutzermodell. Aber aus dem Fehler wirft sie undefiniert Methode Rolle(). Aber es gibt keine Methode aufgerufen Rolle()
Hier ist mein Controller
class AdminController extends Controller
{
public function index()
{
$user_details = User::all();
return view('admin')->with('users' , $user_details);
}
}
Ich habe auch das Verfahren, während die Daten von DB wie
bekommen$user_details = User::with('hasRole')->get();
Auch diese Arbeit nicht.
Dies ist mein Benutzermodell.
<?php
namespace App;
use App\Role;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
public function roles()
{
return $this->belongsToMany('App\Role','user_role','user_id','role_id');
}
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;
}
}
siehe: http://stackoverflow.com/questions/31790234/laravel-5-adding-hasrole-method-to-auth –