Я использую расширение laravel-menu в моем приложении Laravel.
Это приложение содержит несколько проектов с несколькими местоположениями, прикрепленными к каждому проекту.
Теперь я хочу определить боковое меню, где я могу, среди прочего, управлять местоположениями.
URL проекта
project/1
URL страницы местоположений проекта
project/1/locations
Как настроить это боковое меню вways.php?
Мой код маршруты.
Route::resource('project', 'ProjectsController'));
Route::resource('project.locations', 'LocationsController');
Menu::make('sidemenu-project', function($menu) {
$menu->add('Locaties', array('route' => 'project.locations.index','{project?}'))->data('id',1); // this is not working
});
Это выводит URL / проект /% 7Bproject% 7D / местоположения
Перейдите в свой терминал (командная строка) и выполните следующую команду:
> php artisan routes
Тогда вы увидите все заявленные маршруты с их URL
и соответствующее название маршрута и method name
,
Я очень новичок в Laravel, но страница документации Routes упоминает, что вы создали контроллер с такими параметрами:
Route::get('user/{id}', function($id) { ... });
Не могли бы вы поэтому определить свой маршрут как
Route::get('project/{id}/locations', function($id) { ... });
Я думаю, что у вас есть эта проблема из-за неправильной настройки маршрутов. Чтобы получить структуру маршрута, которую вы хотите, вы должны поставить свой project/1/locations
определение маршрута выше первый. Считайте, что ваш route.php:
Route::resource('project/{project}/locations', ['as'=>'project.locations', 'uses'=> 'LocationsController']);
Route::resource('project', 'ProjectsController'));