Код: Выделить всё
class Place
{
public function hotels()
{
return $this->hasMany('Hotel');
}
}
class Hotel
{
public function place()
{
return $this->belongsTo('Place');
}
}
В моем контроллере мне нужно показать список отелей каждый в одном поле, поэтому я создал что-то похожее на это:
Код: Выделить всё
//place.blade
{{ $place->name }}
@foreach($place->hotels as $hotel)
@include('partials.hotels-box', ['hotel' => $hotel])
@endforeach
//partials/hotels-box.blade
[url=route(] $hotel->name, 'place' => $hotel->place->name) }}">
{{ $hotel->name }}
[/url]
@endforeach
НО внутри Hotels-box.blade каждый раз, когда я обращаюсь к модели места внутри $hotel, Eloquent запускает новый запрос (даже если место всегда одно и то же и именно оно запускает @foreach).
Единственные идеи, которые пришли мне в голову, чтобы избежать этих проблем:
- передать $place в партиалы и использовать его вместо $hotel->place
- вручную установить $hotel->place в контроллере с помощью цикла
Подробнее здесь: https://stackoverflow.com/questions/401 ... less-query
Мобильная версия