2014-10-09 60 views
0

我在Laravel应用程序中使用扩展laravel菜单。 此应用程序包含多个项目,每个项目都附有多个位置。Laravel:获取routes.php中的当前参数

现在我想定义一个sidemenu,我可以在其中管理位置。 一个项目的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 /项目/%7Bproject%7D /地点

回答

0

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

> php artisan routes 

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

+0

对不起,仔细检查它并没有帮助我。我以为是在工作,但我在控制器操作中从我检索项目ID的地方添加了菜单脚本。但是这个菜单会出现在多个页面上,我不想在每个控制器中添加相同的菜单。 – Royw 2014-10-13 08:25:16

0

我很新的Laravel但文档的路线页面提及您创建一个这样的参数控制器:

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

你能因此定义您的路线

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

我想由于错误配置路由,您有此问题。为了达到你想要的路线结构,你应该把你的project/1/locations路线定义高于第一个。考虑你的routes.php是:

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

有道理,但当我这样做时,我得到一个数组字符串转换错误? – Royw 2014-10-13 08:59:14

+0

浏览菜单包和文档状态,' - > data()'用于发送元数据信息。我不认为你按照预期在这里使用它。 – 2014-10-13 09:27:21

+0

看看https://github.com/lavary/laravel-menu#controller-actions。深入挖掘;) – 2014-10-13 09:31:47