2017-06-26 3 views
0

Ich habe diese Funktion im Controller:Nicht die Laravel Fremdschlüsseltabelle bekommen [ERROR]

/** 
    * 
    * Edit Registration 
    * 
    */ 
    public function edit(Registration $id) 
    { 
     $logs = Log::where('registration_id', $id->id)->users()->get(); 

     dd($logs); 
     return view('registrations_edit', ['registration' => $id, 'log' => $logs]); 
    } 

Die Dokumentation sagt, ich

Log::where('registration_id', $id->id)->users()->get(); 

nennen kann, wenn ich users() im Modell definieren.

public function users(){ 
    return $this->belongsTo('App\User', 'id', 'user_id'); 
} 

aber wenn ich users() im Controller nenne ich bekomme immer

Call to undefined Methode Illuminate \ Database \ Abfrage \ Builder :: Benutzer()

Was mache ich falsch?

Mit freundlichen Grüßen

+0

Versuchen Sie Benutzer :: Klasse anstelle von Benutzer: Klasse –

+0

Ich habe es versucht, wie Sie sagen, aber immer noch den gleichen Fehler. Ich habe es jetzt in App \ User wie in der Dokumentation geändert. Aber immer noch den Fehler –

Antwort

0

Ich glaube, Sie dies versuchen:

public function edit(Registration $id) 
    { 
     $logs = Log::with('users')->where('registration_id', $id->id)->get(); 

     dd($logs); 
     return view('registrations_edit', ['registration' => $id, 'log' => $logs]); 
    } 

Hoffnung diese Arbeit für Sie

+0

bekommen, dass für mich funktioniert hat danke! Können Sie mir sagen, was das mit() tut? Ich kann diese Methode nicht in der Dokumentation finden –

+0

@StarkToni überprüfen Sie diese [link] (https://laravel.com/docs/5.0/eloquent) Auch ich Anfrage, um meine Antwort zu akzeptieren, wenn dies Ihre Lösung ist –

+0

ok danke @ AddWeb Solution Pvt Ltd –

0

Wenn Ihre Beziehungen in der richtigen Art und Weise zu schreiben, versuchen Sie dies:

$logs = Log::where('registration_id', $id->id)->users->get(); 
+0

Wenn ich dies versuche, bekomme ich Undefinierte Eigenschaft: Illuminate \ Database \ Eloquent \ Builder :: $ Benutzer –