그건 아주 쉽게, 그냥 Router configuration in the manual을 확인합니다. Router
클래스의 connect
메서드를 사용해야합니다. 여기에는 2 개의 매개 변수가 허용됩니다. 먼저 원하는 경로를 지정하고 (예 : food/tips
) 두 번째는 실제 경로와 이어지는 배열입니다.
Router::connect('/food/tips', array('controller' => 'tips', 'action' => 'index', 'food');
Router::connect('/happiness/tips/best_tips', array('controller' => 'tips', 'action' => 'index', 'happiness', 'best_tips');
이 각각 TipsController->index('food')
및 TipsController('happiness', 'best_tips)
를 호출하는 것과 같습니다 : 그래서 당신의 예는이 같은 일을 할 것입니다.
그러나 경로가 약간 재미있어 보입니다. 경로에 대한 Cake 규칙은 /controller/action/param1/param2/etc
이며 매개 변수 param1 등은 선택적이며 다른 조치가 제공되지 않은 경우 index
조치가 가정됩니다.
다른 접근 방법을 취하고 있습니다. 가능한 경우 Cake Conventional Routine으로 변경하는 것이 좋습니다. Cake가 이러한 경로를 원하는 방법에 자동으로 연결하기 때문에 나중에 많은 작업을 절약 할 수 있습니다. .
제안 된 경로 대신 tips/food
과 tips/happiness/best_tips
을 제안합니다. 이렇게하면 라우터 구성을 할 필요가 없습니다. 당신이 편집이야 후
UPDATE
, 나는 그것이 defining custom routes 뭔가를 시도하는 것이 가장 좋습니다 생각합니다. 나는 순간에 당신을 위해 이것을 테스트 할 수 없습니다, 그래서 당신은 몇 가지 자신을 테스트해야하지만,이 경우는 같은 것이다 :
죄송합니다
Router::connect('/:section/tips/:param',
array('action' => 'index'),
array(
'section' => '[a-z]*',
'param' => '[a-z]*'
)
);
UPDATE2를, 내가 테스트 한 위와 그것이 작동하지 않는 것 같습니다.
아! 나는 느린 입력;) –
고마워요 @vindia, 내 문제 (내 잘못을, 나는 원래의 질문을 편집합니다) 해결되지 않습니다. 관습에 관해서는, 내 문제는 팁 컨트롤러가 있지만 팁 섹션이 있습니다. 그래서 팁 컨트롤러에 각'섹션/팁 '을 라우트해야합니다 ... – yossi
덕분에, 나는 여러 가지 튜토리얼과 가이드를 시도했습니다. 결과. 액션 값에 따라 컨트롤러를 라우트 할 수 없습니다. 이유가 없습니다. 이유가 없습니다. – yossi