Не выводится подменю в Laravel Voyager

В контроллере тяну меню из базы:

$my_menu = menu('application_menu', '_json');

Меню забирается нормально, но кроме подпунктов (там где parent_id != NULL). То есть пункты меню второго уровня не подтягиваются. Почему? Кто с таким сталкивался? Как решить? Спасибо.


Ответы (1 шт):

Автор решения: Kazarinov Yanek

Как я написал в комментарии вопроса, проблема в действительности заключалась не в том, что menu('application_menu', '_json') не возвращает дочерние элементы меню. На самом деле возвращает (когда я задавал вопрос я этого не заметил по нижеследующей причине). Когда я пробовал извлекать переведенные значения пунктов меню через menu('application_menu', '_json')->translate($locale) именно в этой ситуации подпункты не брались. Я тестировал и на стороне клиента и на стороне сервера. Возможно, есть какие-то проблемы в API Voyager.

Мне пришлось обойти эту проблему, создав модель таблицы меню, сделав запрос по menu_id и потом поставив перевод:

$my_menu = menu_items::select('id', 'title', 'icon_class', 'url', 'parent_id', 'order')
                        ->where('menu_id', 2)
                        ->orderBy('order')
                        ->get()
                        ->translate($locale);
→ Ссылка