Сценарий: На hasMany
отношения, используя функцию with
(для нетерпеливого нагрузки), я хочу, чтобы ограничить результаты от каждой из строк в пределах (вместо общего количества).Laravel hasMany отношения, ограничивают с запросом
Я следую этому учебнику (как я думаю, что это единственный способ добиться того, что мне нужно от того, что я читал на SO) - https://softonsofa.com/tweaking-eloquent-relations-how-to-get-n-related-models-per-parent/
У меня есть Model
- номер, что hasMany
обзоров.
Модель номер:
class Room extends Scopes\BaseModel
public function reviews()
{
return $this->hasMany('App\Review');
}
public function latestReviews()
{
return $this->reviews()->latest()->nPerGroup('room_id', 1);
}
Прицелы/BaseModel.php:
Прямая копия учебника веб-сайта, но с пространством имен namespace App\Scopes;
контроллер, используя с функция:
class Room extends Scopes\BaseModel
$rooms = Room::where('room_types_id', $specialism_id)
->with('latestReviews')
->get();
Ошибка:
RelationNotFoundException in RelationNotFoundException.php line 20: Call to undefined relationship [latestReviews] on model [App\Room].
Спасибо, но два решения ограничивают общее количество отзывов, а не общее количество отзывов для каждой комнаты. – Ben
Второй ограничивает количество отзывов для каждой комнаты в коллекции – xhulio
Где я могу использовать метод доступа? – Ben