문제

나는 방법에는 사용자 컨트롤러와 유사:

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')
    )
);

http://book.cakephp.org/view/46/Routes-Configuration

다른 팁

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top