2013-01-17 3 views
2

나는 제품을 나열, 분류 및 필터링하여 해당 제품을 검색 할 수있는 시스템을 가지고 있습니다.라우터 cakephp를 구성하여 무제한/선택적 매개 변수를 만들 수 있습니다.

나는 선택 "브랜드", "시스템 유형을 operting", "CPU"... 원정 필터는 그래서 그들은 필터링하고 모든 일이, URL이 변경됩니다 때 내 URL이 "/category/smartphones/samsung/android/.../"과 같이 원하는 같은 :

filter by brand : /category/smartphones/samsung/ 
by os type : /category/smartphones/android/ 
by brand and os type : /category/smartphones/samsung/android/ 
... 

또한 방문자는 필터링 중에 정렬하거나 정렬 중에 필터링 할 수 있습니다. 그래서 URL은 더 비슷할 수있다 "/category/smartphones/samsung/android/sort:created/direction:desc/"

나는이 프레임 워크에서 초보자이기 때문에 cakephp이 그런 것을 할 수 있는지 모른다. 또는 그와 같은 어떤 해결책이 있습니까?

방금 ​​라우터에서 구성을 정렬했습니다. 그러나 나는 그런 식으로 시작하는 법을 모른다 (필터는 무한한 매개 변수이다).

답변

4

Cake의 기본 라우팅 방법에 만족하면 실제로는 매우 쉽습니다. 경로 파일에 항목이 필요하지 않습니다. :-)

이것은 내가 무슨 짓을했는지 ...

class PagesController extends AppController { 
    function test() { 
     debug($this->params['named']); 
     debug($this->params['pass']); 
    } 
} 
다음

나가라고 ... http://localhost/pages/test/x/y/z/something:x/else:y/1/2/3

이 출력이 ...

array(
    'something' => 'x', 
    'else' => 'y' 
) 

array(
    (int) 0 => 'x', 
    (int) 1 => 'y', 
    (int) 2 => 'z', 
    (int) 3 => '1', 
    (int) 4 => '2', 
    (int) 5 => '3' 
) 

그래서 당신은 단순히 사용하는 것입니다 $this->params['named']$this->params['pass']을 사용하면 필요한 용어를 얻을 수 있습니다. 희망이 도움이됩니다!

관련 문제