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 我知道我可以手动命名路线,然后使用给定的名称。但如果没有命名它们的方式,我更喜欢它。
答
您不必在路由名称中添加诸如employee
之类的东西。运行php artisan route:list
命令,您将看到由resource
子句创建的所有路由的实际名称(请参阅名为Name
的列)。然后,只需使用他们像往常一样:
route('employees.images.index', ['employee' => $employee->id]);
此外,您还可以name resource routes。
不,这不是这种情况,如果您嵌套资源,则这些占位符由laravel插入。 'employees。{employee} .images.index'是您提到的命令的名称 – pfried
如果它不适用于您,则可以命名资源控制器路由:https://laravel.com/docs/5.2/controllers# restful-naming-resource-routes –
是的,这是真的,我知道这一点。我只是想知道是否有使用生成的路线的方式,我应该添加到我的问题 – pfried