Cakephp 에서의 라우팅과 함께 선택적 params
문제
나는 방법에는 사용자 컨트롤러와 유사:
function members($type = null, $category = null) { ... }
모두 params 은 선택과 함께 사용할 수 있습니다 또는에서 자신 있습니다.
그래서 다음과 같은 경로입니다.
Router::connect('/members/*', array('controller' => 'users', 'action' => 'members'));
http://example.com/users/members
성공적으로 된 http://example.com/members
.
불행하게도 다음과 같은 작동하지 않는
http://example.com/members/type:cat
http://example.com/members/category:dog
http://example.com/members/type:cat/category:dog
어떻게 설정 노선에 그렇게 그들은 모두 제대로 작동?
해결책
라는 매개변수는 없 automagicaly 매핑되는 작업입니다.을 얻을 수 있습니다 그들을 호출하여
$이->passedArgs['유형']나$이->passedArgs['category']
를 사용하거나 제 3 에서 매개 변수 라우터:연결:
Router::connect(
'/members/*',
array('controller' => 'users', 'action' => 'members'),
array(
'pass' => array('type', 'category')
)
);
다른 팁
Try with
Router::connect('/members/type\:(.*)', array('controller' => 'users', 'action' => 'members_type'));
Router::connect('/members/category\:(.*)', array('controller' => 'users', 'action' => 'members_category'));
Router::connect('/members/type\:(.*)/category:(.*)', array('controller' => 'users', 'action' => 'members_type'));
Note that I didn't test it, but I think you must escape the colon.
제휴하지 않습니다 StackOverflow