2016-07-29 16 views
0

Ich benutze Laravel 5.2 und habe einige Beziehungen zwischen meinen Modellen Setup.Wie gebe ich einen Datensatz mit seiner Relation zurück, nur wenn die Relation nicht gelöscht wurde

Ich habe ein Modell und ein Customer Modell (ein Produkt hat einen Kunden). Ich verwende Folgendes, um eine Liste von Kunden zu erhalten, jedoch verwende ich auch weiche Löschungen. Wenn der Kunde gelöscht wurde (die Beziehung), möchte ich das Produkt nicht zurückgeben.

Wie erreiche ich das in Laravel?

$products = Product::with('customer')->get(); --want zu sagen

Antwort

1

"wo customer.deleted_at null ist" Sie haben has auf der Abfrage zu nennen:

$products = Product::with('customer')->has('customer')->get();

1

Wie es @Lock zu setzen, verwenden

$products = Product::with('customer')->has('customer')->get(); 

TIPP: Für das Gegenteil - dh nur die Produkte mit gelöschten Kunden zu bekommen (macht nicht viel se nse hier, aber Sie können dies in Zukunft nützlich finden), verwenden Sie unter

$deleted=Product::with(['customer' => function ($q) { 
    $q->withTrashed(); 
    }])->onlyTrashed()->get();