2016-10-04 4 views
0

Ich bekomme immer die Methode nicht gefunden Fehler, wenn ich versuche, eine Rolle für den Benutzer im Abschnitt Benutzerregistrierung zuweisen. Methode Rollen nicht gefunden in Laravel Auth

Im folgenden ist der Code, den ich verwende im AuthController

namespace App\Http\Controllers\Auth; 
use Validator; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\ThrottlesLogins; 
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; 

use Illuminate\Http\Request; 
use Illuminate\Support\Facades\Auth; 

use App\User; 

class AuthController extends Controller 
{ 

protected function create(array $data) 
{ 
    $user = User::create([ 
     'first_name'  => $data['first_name'], 
     'last_name'   => $data['last_name'], 
     'email'    => $data['email'], 


    ])->get(); 

    $user->roles()->sync([2]);  

    return $user; 
} 
} 

folgende ist mein User-Modell

namespace App; 

use Illuminate\Foundation\Auth\User as Authenticatable;  
use Zizaco\Entrust\HasRole;  
use App\Role; 

class User extends Authenticatable 
{ 

    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 
    protected $table = 'users'; 
    protected $fillable = [ 
     'first_name','last_name', 'email', 'password' 
    ]; 

    /** 
    * The attributes that should be hidden for arrays. 
    * 
    * @var array 
    */ 
    protected $hidden = [ 
     'password', 'remember_token', 
    ]; 

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


} 

Ich bin nicht sicher, warum dies geschieht. Ich denke, vielleicht wird das Benutzermodell nicht richtig importiert, oder ich vermisse etwas. Ich bin neu in Laravel, daher ist jede Hilfe willkommen.

$user = User::create($attributes) 

Beachten Sie, dass ich nicht get() Nachworte rief:

Antwort

0

Um ein Modell verwenden Sie einfach die folgende zu erstellen. get() führt eine Abfrage aus, die eine Collection zurückgibt. Ich bin mir nicht sicher, wie Ihr Role Modell aussieht, aber es sollte jetzt richtig funktionieren.

+0

Ich hatte versehentlich die Benutzermodelldatei an einen anderen Ort kopiert und verschwendete Zeit damit herauszufinden, warum es nicht funktionierte. Dies löste das Problem, das ich nach der Realisierung hatte und überprüfte die richtige Datei. Vielen Dank. – user1634781