0
我正在關閉初始網站,您可以找到here,並且我試圖獲取嵌套的資源路由。我有包含許多版本的項目,並且項目和版本URL都需要通常的查看/編輯/刪除功能。我建立了我的路線是這樣的:在laravel中嵌套資源路由的問題
# Project Management
Route::get('projects/{project}', '[email protected]');
Route::get('projects/{project}/edit', '[email protected]');
Route::post('projects/{project}/edit', '[email protected]');
Route::get('projects/{project}/delete', '[email protected]');
Route::post('projects/{project}/delete', '[email protected]');
Route::controller('projects', 'AdminProjectsController');
# Version Management
Route::get('projects/{project}/versions/{version}', '[email protected]');
Route::get('projects/{project}/versions/{version}/edit', '[email protected]');
Route::post('projects/{project}/versions/{version}/edit', '[email protected]');
Route::get('projects/{project}/versions/{version}/delete', '[email protected]');
Route::post('projects/{project}/versions/{version}/delete', '[email protected]');
Route::controller('projects.versions', 'AdminVersionsController');
我遇到的問題是,當我去到一個URL像/projects/1/versions/1
我得到這個錯誤:
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
Controller method not found.
和在AdminVersionsController的getShow()方法確實存在,看起來像這樣:
class AdminVersionsController extends AdminController {
....
public function getShow($project, $version) {
....
}
....
}
我也得到了同樣的錯誤了相關版本所有其他網址。關於我在做什麼的任何想法都是錯誤的?
我對你的意思有點困惑。我不認爲簡單地將'Route :: controller('projects.versions','AdminVersionsController');''作爲Route :: resource('projects.versions','AdminProjectsController')''將要解決我的問題,你可以擴展你的答案嗎? – Samsquanch
在控制檯中運行「工匠路線」以檢查您現在定義的路線,然後在寫入時更改並再次檢查。基本上寧靜的控制器(你現在有什麼)總是默認有_missing路由。此外,你不能隨意嵌套這些。 –
當我運行'artisan routes'時,路線在那裏:'GET | HEAD admin/projects/{project}/versions/{version} | | AdminVersionsController @ getShow'。 – Samsquanch