2010-04-29 1 views
0

나는 cakephp와 PHP/cakephp에 대한 완전히 새로운 일을하고있다. 여기에 내 라우트 구성에 어떤 문제가 있는지 말해 줄 수 있습니까? 내가 같이 페이지에 액세스 할 때CakePHP - 라우트 구성

Router::connect(
'/news/:q/:page', 
array('controller' => 'news', 
     'action' => 'onDemand', 
     'mode'=>'news', 
     'page'=>1), 
array('pass'=>array('q','mode','page'), 
     'page' => '[\d]+')); 

은/뉴스/123/뉴스// 1 (123), 그것은 뉴스 컨트롤러의 액션 '123'에 대한 검색을 시도합니다.

기본적으로 내가하고 싶은 것은 사용자가/news/android를 입력하면 'android'를 캡처하여 결과를 반환한다는 것입니다. 결과가 너무 길면 페이지 매김을 지원해야합니다. 즉, url은 /news/android/(2...n)이됩니다.

+0

혼란스러운 길. Routes 장 (http://book.cakephp.org/view/46/Routes-Configuration)을 읽어 보시면 도움이 될 것입니다. –

+0

감사합니다. 이미 살펴 봤습니다. – aboxy

답변

1

그냥이 작업을 수행 할 수 있습니다

Router::connect('/news/*', array('controller' => 'news', 'action' => 'onDemand')); 

은 온 디맨드 기능이 선언으로 :

public function onDemand($subject, $page = null) 

사용자가 /news/android 또는 /news/android/2 케이크는 각각 onDemand('android') 또는 onDemand('android', '2')을 호출 요청합니다.

+0

감사합니다. 나는 전에 그것을 가졌지 만 그것은 나의 다른 정의 된 URL/news/recent/*을 깨뜨린다. 미안하지만, 원래의 질문에 언급 했어야 했어. 기본적으로 사용자 유형/news/recent/1 인 경우 사용자 유형/뉴스/<기타> - 'onDemand'작업을 가리켜 야하면 조치 = 색인 이됩니다. 구성권을 가지고 놀고 있습니다. 지금. 나는 우선 순위의 개념이 경로에 존재하기를 바라고있다. 감사합니다. – aboxy

+0

확인. 나는 이것이 효과가 있다고 생각한다. 나는/news/recent에 대한 나의 경로를 가지고있다.이 경로는 action = index 에 매핑하고 그 후에/news/*에 매핑한다. 두 링크가 작동하는 것을 볼 수 있습니다. 여기에 의견이 있으십니까? – aboxy

+0

흥미 롭습니다. 그것은 나를 위해 꽤 일하지 않습니다. 나는 onDemand를 가지고 있어야했다. if ($ subject == 'recent') $ this-> recent();'그러나 그것이 당신을 위해 작동한다면, 훌륭합니다! – webbiedave