2013-11-20 2 views
0

yii를 사용하여 REST API 빌드에 대해 아래에 정의 된 URL 패턴이 있습니다.Yii URL 패턴 문제

 'urlManager'=>array(
     'urlFormat'=>'path', 
     'rules'=>array(
         array('api/default/list', 'pattern'=>'api/<model:\w+>', 'verb'=>'GET'), 
         array('api/default/view', 'pattern'=>'api/<model:\w+>/<id:\d+>', 'verb'=>'GET'), 
         array('api/default/update', 'pattern'=>'api/<model:\w+>/<id:\d+>', 'verb'=>'PUT'), 
         array('api/default/delete', 'pattern'=>'api/<model:\w+>/<id:\d+>', 'verb'=>'DELETE'), 
         array('api/default/create', 'pattern'=>'api/<model:\w+>', 'verb'=>'POST'), 
     '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
    ), 
    ), 

내가 IS,

http://example.com/RestApi/index.php/API/포스트는? = 5 & = 10 개

위의 작품 제한하지만, 다음과 같은 나던 작업을 상쇄 지금 노력하고 무엇.

http://example.com/RestApi/index.php/API/이후/오프셋/5/제한/

(10)가 어떻게이 두 번째 방법처럼 작동 할 수 있습니까? URL 관리자에게 어떤 변화가 필요합니까?

감사

업데이트

내가 두 번째 방법을 얻을 오류는 요청 "API/후/오프셋/5/제한/10"를 확인할 수 없습니다

.

+0

.htaccess 파일을 – crafter

+0

@crafter nope로 설정 했습니까? 나는하지 않았다. – dev1234

답변

1

이 작업을 시도 할 수 있습니다 :

'urlManager'=>array(
     'urlFormat'=>'path', 
     'rules'=>array(
         array('api/default/view', 'pattern'=>'api/<model:\w+>/<id:\d+>/*', 'verb'=>'GET'), 

         array('api/default/list', 'pattern'=>'api/<model:\w+>/*', 'verb'=>'GET'), 

      ............. 
    ), 
), 

내가 다른 규칙을 덮어 쓰지 않도록하기 위해 api/default/view 규칙을 움직였다.

+0

고마워,하지만 내가 필요로하는 방식을 유발하지는 않는다. 예를 들어 url 1 - http : //localhost/RestApi/index.php/api/user/ | url 2 http : //localhost/RestApi/index.php/api/user/1. url 1은 임의의 수의 추가 매개 변수와 함께 작동하지만 url 2는 전적으로 변경되어 url 2 패턴을 무시하기 때문에 전혀 작동하지 않습니다. – dev1234

+1

@ mazraara : 답변을 업데이트했습니다. 좀 봐주세요! – secretlm