Ich habe ein Modell Test
wie folgt benannt:eifrig Last der Beziehungen eines bestimmten Modells in Laravel
class Test extends Model
{
public $primaryKey = 'test_id';
public function questions()
{
return $this->belongsToMany('App\Question', 'question_test', 'test_id', 'question_id');
}
}
Und ein Question
Modell wie folgt aus:
class Question extends Model
{
public function tests()
{
return $this->belongsToMany('App\Test', 'question_test', 'question_id', 'test_id');
}
}
Wie Sie dort sehen, ist ein ManyToMany
Beziehung zwischen diesen beiden Modellen.
Jetzt in einer Controller-Funktion möchte ich einen bestimmten Test (per ID) erhalten und es an eine Ansicht senden. dann eifrig laden alle es ist questions
verwandte Modelle und senden Sie es an eine andere Ansicht. dies wie:
public function beginTest ($course_id, $lesson_id, $test_id)
{
$test = Test::find($test_id);
if ($test->onebyone) {
return view('main/pages/test/test-onebyone', compact('test'));
} else {
$test = $test->with('questions.options')->get();
return view('main/pages/test/test-onepage', compact('test', 'done_test_id'));
}
}
}
Problem ist, dass wenn ich with()
Laravel Methode eifrig Last Beziehungen verwenden, ist es alle Testmodelle mit ihren Question
Beziehungen zurückzukehren, während ich nur die Beziehungen von ausgewählten Test
Modell erhalten möchten.
Was ist Ihre Lösung, um das zu lösen?