2016-05-17 94 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