2013-08-17 2 views
0

자동으로 생성 된 Laravel 경로 중 일부를 수정하고 싶습니다. 이것이 실제로 가능한지 확실하지 않습니다.Laravel 4 리소스 컨트롤러 경로 수정

Workspace (Eloquent를 사용하는 모델)을 가지고 있으며 장인을 사용하여 리소스 컨트롤러를 만들었습니다.

php artisan controller:make WorkspaceController 

그리고이 명령을 내 routes.php 파일에 사용하여 경로를 추가했습니다.

Route::resource('workspace', 'PROJECT\Controllers\Workspaces\WorkspaceController'); 

나는 등 workspace/{id}/edit와 같은 다른 시나리오 구조를 유지하고 싶습니다 반면, 나는 workspaces하지 workspace로 인덱스 경로를하고자하는 사용 가능한 자원을 나열 getIndex를 사용하려면 때문에

.

Route::resource이 만드는 기본 경로를 어떻게 수정할 수 있습니까?

+0

이 너무 많이하지 않습니다하기 전에 정의를 자원 컨트롤러가 일반적으로 경로를 망친 것처럼 작동하는 방식 변경 - 자원 '작업 공간'과 '작업 영역'을 동일한 "일"로 효과적으로 전환하고자합니다. Shift Exchange의 대답을 사용하면 동일한 컨트롤러로 라우팅 할 수 있습니다. 그렇지 않으면 원하면 라우터를 확장하고 (https://github.com/laravel/framework/blob/master/src/Illuminate/Routing/Router.php) Laravel 's를 확장 버전으로 바꿀 수 있습니다. – fideloper

+0

나는 진짜 질문이 있다고 생각한다 : 그렇게하기에 좋은 사업 적 이유가 있니? '/ workspaces'를'WorkspaceController @ index'로 라우팅하는 것을 멈추게하는 것은 무엇입니까? – fideloper

+0

감사합니다. 나는 그 길을 훨씬 잘 통제 할 수 있기 때문에 모든 루트를 직접 정의하는 것이 가장 좋다고 결정했습니다. – Jonathan

답변

1

resource() 경로를 "수정"할 수 없습니다.

리소스() 위에 더 많은 경로를 추가하거나 각 경로를 개별적으로 정의 할 수 있으므로 경로를 완벽하게 제어 할 수 있습니다.

Read this blog about routes - it will shed some light on the issue

당신은 같은 것을 할 수있는 많은 경로 추가 예 :

Route::get('extra', 'PROJECT\Controllers\Workspaces\WorkspaceController'); 
Route::resource('workspace', 'PROJECT\Controllers\Workspaces\WorkspaceController'); 

참고 여분의 경로는 최고의 자원() 경로

+0

답장을 보내 주셔서 감사합니다. 개별 경로를 정의 할 수 없으며 여전히 resource()를 사용하는 것은 부끄러운 일입니다. – Jonathan