Я использую красноречивый Laravel от Lazy/Eager Loading и столкнулся с интересной проблемой.Laravel eloquent 5.3 Eager/Lazy, связанные с загрузкой моделей с несколькими ограничениями
Описание:
- Счет имеет множество групп, каждая из которых с номером приоритета
- Все группы содержат элементов в них
Вопрос:
мне нужно вручную установить ограничение на количество возвращаемых элементов каждой группы
Разница здесь в том, что изменения номера предела, основанные на каждом уровне групп приоритета
Так, к примеру, eloquent «select» будет получать все три группы, но ограничивать количество элементов, возвращаемых в группе 1, всего на 3 элемента, группа 2 - всего на 8 элементов, от 3 до 17 элементов.
То, что я пытался сделать:
код в контроллере, чтобы получить записи
return Account::with([ 'group_list.item' ])->where('group_id', $my->group_id) ->orderBy('group_priority_num', 'ASC') ->take(3) <----Gets three groups ->get(['group_priority_num','group_title','group_id']);
Group Модель
public function group_list() { // Example $this->number = [4 , 7, 15]; return $this->group()->limit($this->number)->groupBy('user_group_id_fk'); }
Это возвращает только 1 запись или вообще ничего, поэтому я в настоящее время путаюсь, как правильно подойти к ней. Может ли кто-нибудь дать мне некоторое руководство по этому поводу?
Любая помощь с благодарностью, заблаговременно. Приветствия!
Может быть и четвертый вариант, где я бы сделал запрос на растяжение, который бы добавил к этому типу функциональности ... однако для его разработки потребуется больше времени, чем в настоящее время. То, что вы говорите, имеет смысл. Благодарим за отзыв! Приветствие! –