2013-05-11 3 views

답변

37

I 앱/컨트롤러에서 이름 공간과 디렉토리를 사용하여 종료 : 나는 그에 따라 네임 스페이스를 설정

/app 
    /controllers 
    /Api 
     /v1 
     /UserController.php 
     /v2 
     /UserController.php 

을 그리고 UserController.php 파일에 :

namespace Api\v1; 

또는

namespace Api\v2; 

을 그런 다음 내 경로에서 다음과 같이했습니다.

Route::group(['prefix' => 'api/v1'], function() { 
    Route::get('user',  'Api\v1\[email protected]'); 
    Route::get('user/{id}', 'Api\v1\[email protected]'); 
}); 

Route::group(['prefix' => 'api/v2'], function() { 
    Route::get('user',  'Api\v2\[email protected]'); 
    Route::get('user/{id}', 'Api\v2\[email protected]'); 
}); 

나는 이것이 최선의 해결책이라고 생각하지 않습니다. 그러나 서로 간섭하지 않는 방식으로 컨트롤러 버전을 허용했습니다. 필요한 경우 모델과 유사하게 검증 할 수 있습니다.

+0

이 방법을 사용하면 전체 경로 (예 : \ Input, \ App)를 사용하여 이름 공간 외부의 모든 클래스를 참조해야했습니다. –

+3

'use App;'문을 추가 할 수도 있습니다. 그것이 네임 스페이스가 작동하는 방식입니다. –

+1

@ iah.vector - 버전에 문제가 있습니다. 컨트롤러 만 v1 또는 모델, 작업, 요청에 들어가야 만합니다 ... 또한 vesrion 폴더로 이동해야합니까? –

관련 문제