Chciałbym pobrać wszystkie modele, które nie mają związku.Zdobądź wszystkie elokwentne modele bez związku
Podobny do pobierania modele, które mają jeden:
return $this->model->has('quote')->orderBy('created_at', 'desc')->get();
bym zasadzie lubią mieć odwrotność tego. Nie mogę znaleźć żadnej dokumentacji, aby to zrobić.
Zasadniczo to zapytanie:
SELECT * FROM custom_design_requests
RIGHT JOIN quotes
ON quotes.`custom_design_request_id` = `custom_design_requests`.id
Ale chciałbym uniknąć konieczności korzystania z kwerend (DB::table('custom_design_requests')->rightJoin('quotes', 'quotes.custom_design_request_id', '=', 'custom_design_requests.id')->get();
), tak że mam kolekcję wystąpień modelu.
Dzięki
Dziękuję! To jednak wystarczyło. :) –
Chociaż metoda has() wydaje się bardzo prosta w użyciu, powinieneś pamiętać o tym, co Eloquent robi wewnętrznie, gdy ją wywołujesz. Wynikowe zapytanie uruchomi podselekt dla każdego rekordu w bazie danych, który może nie być wydajny, jeśli masz dużo danych. W powyższym przypadku wynikowy kod SQL może wyglądać następująco: WYBIERZ * Z modeli WHERE (WYBIERZ COUNT (*) Z cudzysłowów WHERE model_id = models.id) <1 " –