2016-05-17 90 views
1

文档说:Laravel 5.2刀片航线资源

如果指定的路线定义参数,你可以传递参数 的第二个参数的路由功能。给定参数将 自动插入到URL中的正确位置:

Route::get('user/{id}/profile', ['as' => 'profile', function ($id) { 
    // 
}]); 

$url = route('profile', ['id' => 1]); 

如果我有使用Route::resource(...)两次嵌套资源的路线,我会得到一个名为路线至极包含一个占位符像

employees.{employee}.images.index 

如何使用刀片模板引擎为此嵌套资源创建路由?

我想过

route('employees.{employee}.images.index', ['employee' => $employee->id]); 

,但不起作用。我知道我可以“手动”创建路线,但这会使他们不易维护。

更新1 我知道我可以手动命名路线,然后使用给定的名称。但如果没有命名它们的方式,我更喜欢它。

回答

0

您不必在路由名称中添加诸如employee之类的东西。运行php artisan route:list命令,您将看到由resource子句创建的所有路由的实际名称(请参阅名为Name的列)。然后,只需使用他们像往常一样:

route('employees.images.index', ['employee' => $employee->id]); 

此外,您还可以name resource routes

+0

不,这不是这种情况,如果您嵌套资源,则这些占位符由laravel插入。 'employees。{employee} .images.index'是您提到的命令的名称 – pfried

+0

如果它不适用于您,则可以命名资源控制器路由:https://laravel.com/docs/5.2/controllers# restful-naming-resource-routes –

+0

是的,这是真的,我知道这一点。我只是想知道是否有使用生成的路线的方式,我应该添加到我的问题 – pfried