2017-11-24 3 views
0

Laravel 5.4, Probleme mit Benutzermodell. Ich arbeite gerade an Laravel und bin jetzt über dieses Problem gestolpert.Laravel: Bei Anmeldung: getAuthIdentifierName()

Ich registriere erfolgreich ein Unternehmen und einen zugehörigen Benutzer (es handelt sich um eine Eins-zu-viele-Beziehung zwischen dem Besitzer des Modells und dem Benutzer). Nach der Anmeldung möchte ich den Benutzer anmelden und auf eine bestimmte Seite umleiten. Das ist, wo ich den Fehler:

Call to undefined method App\User::getAuthIdentifierName()

Dies sind die Modelle:

Besitzer

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Owner extends Model 
{ 
    protected $fillable = ['firma', 'email', 'www']; 

    public function scopeNumUsers($query, $pId){ 
    return User::where('owner_id', $pId)->count(); 
    } 

    public function users() { 
    return $this->hasMany('App\User'); 
    } 
} 

Benutzer

namespace App; 
use Illuminate\Database\Eloquent\Model; 
use Illuminate\Auth\Authenticatable; 
use Illuminate\Auth\Access\Authorizable; 
use Illuminate\Auth\CanResetPassword; 

class User extends Model 
{ 
    protected $fillable = ['name', 'username', 'password', 'email', 'owner_id']; 

    public function owner() { 
    return $this->belongsTo('App\Owner'); 
    } 
} 

Die OwnersController behandelt die Registrierung und Anmeldung:

public function store(Request $request) { 

     /* Validation */ 
     $this->validate(request(),[ 
     'firma' => 'required|regex:[^(?!.*Firma).*$]', 
     'email' => 'required|email', 
     'domain' => 'required', 
     'name' => 'required|regex:[^(?!.*Name).*$]' 
     ]); 

     /* Save Owner */ 
     $ownerdata = [ 
     'firma' => $request->firma, 
     'email' => $request->email, 
     'www' => $request->domain, 
     ]; 
     $owner = Owner::create($ownerdata); 

     /* Save User */ 
     $user = new User([ 
     'name' => $request->name, 
     'username' => $request->email, 
     'email' => $request->email, 
     'password' => Bcrypt('zaPasswordWillGoHere') 
     ]); 

     $owner->users()->save($user); 

     /* Sign In User */ 
     \Auth::loginUsingId($user->id); 
     /* 
     \Auth::login($newUser);*/ 

     /* Redirect */ 
     return redirect('/nms'); 
    } 

Ich bekomme, dass Authenticatable scheint, um das Benutzermodell zur Verfügung stehen. Aber ich verstehe nicht, warum, wenn ich es einlege.

Ich freue mich darauf, beleuchtet zu werden.

Antwort

1

hier!

verwenden Illuminate \ Database \ Eloquent \ Model;

class User erweitert Modell

ersetzen ....

Verwendung Illuminate \ Benachrichtigungen \ pflichtige;

Verwenden Sie Illuminate \ Foundation \ Auth \ User als authentifizierbar;

Klasse Besitzer erweitert authentifizierbarer


versuchen diese bitte ...

Verwandte Themen