2017-06-25 2 views
0

Ich versuche, so erstellen Laravel eloquent Beziehung verwenden, aber ich bin immer diesen FehlerRelationship-Methode muss ein Objekt vom Typ Illuminate Database Rückkehr Eloquent Relations Relation

Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation 

Das ist, was ich m versuchen, in meinem Controller

$data = $request->all(); 

    $company = Company::create([ 
     'name' => $data['name'], 
     'description' => $data['description'], 
    ]); 

    $company->members->create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'status' => $data['status'], 
     'password' => bcrypt($data['password']), 
    ]); 

Dies ist meine Firma Modell

zu tun

Das ist mein User-Modell

class User extends Authenticatable 
{ 
use Notifiable; 

protected $fillable = [ 
    'name', 'email', 'password', 'company_id','status', 
]; 

protected $hidden = [ 
    'password', 'remember_token', 
]; 


public function company(){ 
    $this->belongsTo('App\Company'); 
} 

Und dies wird der Fehler ich

(1/1) LogicException 
Relationship method must return an object of type 
Illuminate\Database\Eloquent\Relations\Relation 
in HasAttributes.php (line 403) 
at Model->getRelationshipFromMethod('members') 
in HasAttributes.php (line 386) 
at Model->getRelationValue('members') 
in HasAttributes.php (line 316) 
at Model->getAttribute('members') 
in Model.php (line 1262) 
at Model->__get('members') 
in AdminController.php (line 48) 
at AdminController->addCompany(object(Request)) 
at call_user_func_array(array(object(AdminController), 'addCompany'), array(object(Request))) 
in Controller.php (line 55) 
at Controller->callAction('addCompany', array(object(Request))) 
in ControllerDispatcher.php (line 44) 

bekommen Wie kann ich diesen Fehler beheben?

Antwort

7

Sie haben vergessen, die Beziehung zurückzukehren, wie so:

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

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

public function reports(){ 
    return $this->hasMany('App\Report'); 
} 
+0

hahaha ... i i, dass .. vergessen haben, kann nicht glauben, ich wegen dieser Fehler fast geweint sehr viel .. Danke –

+0

Auch hier richtig : '$ company-> members-> create ([...])' zu '$ company-> members() -> create ([])' –

+0

@MaxBillionaire könnten Sie die Antwort bitte akzeptieren. –

Verwandte Themen