Laravel:在routes.php中获取当前参数


Laravel: Get current params in routes.php

我在我的laravel应用程序中使用扩展laravel菜单。此应用程序包含多个项目,每个项目都附有多个位置。

现在我想定义一个侧菜单,在那里我可以管理其他位置。项目的url是

project/1

项目位置页面的url是

project/1/locations

如何在routes.php中设置此侧菜单?

我的routes.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/project/%7Bproject%7D/locations

转到您的终端(命令提示符)并运行以下命令:

> php artisan routes

然后,您将看到所有声明的路由及其URL以及相应的路由名称和method name

我对Laravel很陌生,但文档的Routes页面提到你创建了一个参数如下的控制器:

Route::get('user/{id}', function($id) { ... });

你能把你的路线定义为吗

Route::get('project/{id}/locations', function($id) { ... });

我认为您遇到这个问题是由于错误配置了路由。为了实现您想要的路由结构,您应该将project/1/locations路由定义放在第一个之上。将您的routes.php设为:

 Route::resource('project/{project}/locations', ['as'=>'project.locations', 'uses'=> 'LocationsController']);
 Route::resource('project', 'ProjectsController'));