Ich habe eine Pivot-Tabelle für phone_models, phone_problems und phone_model_phone_problem. Die Pivot-Tabelle hat eine zusätzliche Spalte 'Preis'.
Handy-Modell:
class PhoneModel extends \Eloquent
{
public function problems()
{
return $this->belongsToMany('RL\Phones\Entities\PhoneProblem')->withPivot('price');
}
}
Telefonproblem:
class PhoneProblem extends \Eloquent
{
public function models()
{
return $this->belongsToMany('PhoneModel')->withPivot('price');
}
}
Ich versuche, den Preis eines bestimmten Telefons mit einem bestimmten Problem zu ermitteln.
So habe ich es jetzt, aber ich habe das Gefühl, dass Laravel eine eingebaute Eloquent-Funktion hat, die ich nicht viel einfacher finden kann:
$model = $this->phoneService->getModelFromSlug($model_slug);
$problem = $this->phoneService->getProblemFromSlug($problem_slug);
Alles, was dies tut, ist die Auswahl des spezifischen Modells und Problems aus ihrer Schnecke.
dann mache ich mit diesen Anmeldeinformationen den Preis wie folgt:
$row = DB::table('phone_model_phone_problem')
->where('phone_model_id', '=', $model->id)
->where('phone_problem', '=', $problem->id)
->first();
Jetzt kann ich den Preis so bekommen, $row->price
aber ich denke, es muss einen viel einfacheren und "Laravel" Weg geben, dies zu tun.