Не выводится подменю в Laravel Voyager
В контроллере тяну меню из базы:
$my_menu = menu('application_menu', '_json');
Меню забирается нормально, но кроме подпунктов (там где parent_id != NULL). То есть пункты меню второго уровня не подтягиваются. Почему? Кто с таким сталкивался? Как решить? Спасибо.
Ответы (1 шт):
Как я написал в комментарии вопроса, проблема в действительности заключалась не в том, что 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);