Wir verfügen über eine Payments-Tabelle, die Links zu Sales- und Sales-Links zu Clients enthält. Was ist der richtige Weg, um eine Verbindung zur Kundenbeziehung aus der Payments-Tabelle herzustellen?Richtiger Weg, um eine Beziehung von einem anderen Modell zu ziehen?
Payments.sale_id -> Sales.id Sales.client_id -> Client.id
Ich habe versucht:
class Payment extends Model {
public function sale() {
return $this->belongsTo('\\App\\Models\\Sale', 'sale_id');
}
public function client() {
return $this->sale->client();
}
}
der gut arbeitet, wenn der sale_id gefüllt ist. Wenn die sale_id jedoch NULL ist, bricht dies (offensichtlich weil $ this-> sale in diesem Fall null ist).
Ich möchte eine Laravel-Lösung, die immer noch Zugriff über die $client
Eigenschaft/Attribut ermöglicht.
Warten Sie, Sie können einen 'Client' auch dann abrufen, wenn kein' Sale' vorhanden ist? – bishop
Ich möchte nur nicht, dass es einen fatalen Fehler verursacht, wenn auf "Payment :: $ client" zugegriffen wird. Das Attribut benötigt 'client()', um ein objectsTo-Objekt trotzdem zurückzugeben. – Devon
Sie können verwenden 'Hat viele durch' Beziehung ==> [Doc] (https://laravel.com/docs/5.1/eloquent-relationships#has-many-through) – Maraboc