Page 2로 이동할 때 Paginator가 내 사용자 정의 매개 변수를 기억하지 않는 이유는 무엇입니까?
-
02-07-2019 - |
문제
CakePHP보기에서 Paginator 도우미를 사용할 때는 URL의 일부를 제 사용에 대해 사용자 정의하는 부분을 기억하지 못합니다.
예를 들어:
http://example.org/users/index/moderators/page:2/sort:name/dir:asc
여기 중재자 해당 유형의 필터링에 도움이되는 매개 변수입니다. 그러나 페이지 핀터 링크를 누르면이 링크가 포함되지 않습니다.
해결책
위의 Alexander Morland의 답변에 추가하려면 구문이 CakePHP 1.3에서 변경되었으며 현재는 다음과 같습니다.
$this->Paginator->options(array('url' => $this->passedArgs));
이것은 더 자세히 설명되어 있습니다 관점에서의 페이지 매김 Cakephp 책의 섹션.
다른 팁
비밀은이 라인을 당신의 견해에 추가하는 것입니다.
$ paginator-> 옵션 (배열 ( 'url'=> $ this-> passedargs));
(나는이 질문과 대답이 많이 묻는 질문이기 때문에이 질문과 대답을 만들었고 나는 그것을 기억할 수 없기 때문에 계속해서 답을 파헤쳐 야한다.)
$ this-> passedargs는보기에서이를 수행하는 선호하는 방법입니다.
넌 나를 구했다! 이것은 나에게 많은 도움이되었습니다. 감사합니다.
Post ($ this-> data)를 통해 원래 보낸 매개 변수를 페이징 구성 요소로 전달하는 방법이 필요했기 때문에 사용자 정의 쿼리가 계속 사용됩니다.
여기에 내가 한 일은 다음과 같습니다.
내 견해로는 내가 넣었다
$paginator->options(array('url'=>$this->data['Transaction']));
$ paginator-> prev ( '<< 이전'물건.
이렇게하면 ".../page : 1/start_date : 2000-01-01%2000 : 00 : 00/end_date : 3000-01-01%2023 : 59 : 59/payments_recieved : 1 "
그런 다음 내 컨트롤러에서 매개 변수를 가져 와서 $ this-> 데이터에 넣어 내 함수가 평소와 같이 계속됩니다.
foreach($this->params['named'] as $k=>$v)
{
/*
* set data as is normally expected
*/
$this->data['Transaction'][$k] = $v;
}
그리고 그게 다야. 페이징은 내 사용자 정의 쿼리와 함께 작동합니다. :)
여기의 옵션은 좋은 리드입니다 ... CakePhp Pagination에서 CakePhp.org/view/166/pagination-in-views에 대한 자세한 정보를 확인할 수도 있습니다.
해당 매개 변수 'URL'을 사용하면 url의 문자열 페이지 화 전에 선호하는 문자열을 넣을 수 있습니다 ..
이 tecnique를 사용한다면 :
$urlpagin = '?my_get1=1&my_get2=2';
$paginator->options = array('url'=>$urlpagin);
나는 단지 얻는다 :
url/controller/action/?my_get1=1&my_get2=2/sort:.../...
그리고 케이크는 내 get 매개 변수를 잃었습니다
대체 Tecnique가 있습니까?