2012-08-06 4 views
2

내 다음과 같은 규칙으로 추가 한이 :URL 관리자 YII

'search/do'=>'search/do', 
'search/do/<town:.*?>'=>'search/do', 
'search/do/<town:.*?>/<cat:.*?>'=>'search/do', 
'search/do/<town:.*?>/<cat:.*?>/<scat:.*?>'=>'search/do', 

URL 검색// 시카고 작업을 잘 수행/& 검색을 수행. 그러나 검색/수행/시카고/레스토랑 $ _GET

+0

"do"는 동작입니다. "search"는 제어 자입니다. 그럼 네가 원하는 건? – iThink

+0

urlManager에 다른 규칙이 있습니까? – FabianoLothor

+0

@FabianoLothor 네, 있지만 컨트롤러와 관련이 없습니다. – iThink

답변

5

그냥 규칙이 특이의 내림차순으로되어 있는지 확인 [ '고양이'(정의되지 않은 인덱스 고양이)에 대한 오류를 제공합니다. 귀하의 질문에

'search/do/<town:.*?>/<cat:.*?>/<scat:.*?>'=>'search/do', 
'search/do/<town:.*?>/<cat:.*?>'=>'search/do', 
'search/do/<town:.*?>'=>'search/do', 
'search/do'=>'search/do', 

규칙 때문에 두 번째 규칙의 $_GET['town']-chicago/restaurants 일치 : 'search/do/<town:.*?>'=>'search/do',을 그리고 그것은 세 번째 규칙으로 이동하지 않았다 더 구체적인 규칙은 작은 것들 다음에 먼저 와야한다. 그래서 먼저 구체적인 것을 가지고 있어야합니다.