2016-06-18 13 views
0

Jungs Ich bin neu in Laravel und ich versuche, den Namen des Benutzers zu finden, die eine bestimmte Frage beantwortet:Eloquent Abfrage - one to many Beziehung

$users = User::with('answers')->where('question_id', $request->question_id)->get(); 

Ich habe dies versucht, aber es doesn Es funktioniert nicht. Es scheint, als ob er versucht, die question_id vom Benutzer und nicht von der Antwort zu finden.

Antwort Modell

Class Answer extends Model{ 
    public function users() 
    { 
     return $this->belongsTo(User::class); 
    } 
} 
    User Model 
Class User extends Authenticatable{ 
public function answers() 
    { 
     return $this->hasMany(Answer::class); 
    } 
} 
+0

Wir brauchen ein bisschen mehr Details. Was ist die Verbindung zwischen dem Benutzer und der Frage? Sie müssen sicherlich aus der Tabelle Frage auswählen, wie es mir scheint. – Vucko

+0

Wenn Sie mit Eloquent vertraut sind, lautet ihre Beziehung: Benutzer hat viele Antworten und Antwort gehört zu Benutzer – TheChosenOne

Antwort

0

Das ist nicht das, was Sie gefragt, aber vielleicht, was Sie brauchen:

$answers = Answer::with('user')->where('question_id', $request->question_id)->get(); 
1

Dies ist, was Sie brauchen, Constraining Eager Loads.

$users = User::with(['answers' => function ($query) use ($request) { 
    $query->where('question_id', $request->question_id) 
}])->get();