Я пытаюсь избавиться от ненужных запросов на своем сайте, но никак не могу разобраться с нетерпеливой загрузкой и отложенной загрузкой. У всех пользователей на моем сайте есть списки, а у списков есть несколько пользователей. Они связаны через таблицу listing_users. Каждый список имеет один «заказ», связанный с ним. Вот модель пользователя:
Модель пользователя:
public function listings(){
return $this->belongsToMany(Listing::class)->withPivot('role_id');
}
Модель листинга:
public function order(){
return $this->hasOne(Order::class)->first();
}
Моя текущая панель инструментов загружается путем вызова этого viewListings в UserController:
public function viewListings(){
$user = Auth::user();
$listings = $user->listings()->orderBy('created_at','desc')->get();
return view('user.listings', compact('listings'));
}
Проблема возникает в моем лезвии просмотра user.listings, где у меня есть цикл foreach для каждого списка, а затем также вызывается каждый заказ. Мне нужен способ передать списки на страницу с соответствующими заказами.
@foreach($listings as $listing)
@if($listing->order()->status == 'completed')
{{-- Display the listing details here --}}
@endif
@endforeach
Будем признательны за любые советы в вышеописанной ситуации! Я уверен, что для этого есть простое решение Laravel, которое я упускаю из виду.