2008-09-29 24 views
12

Khi sử dụng trình trợ giúp người giúp việc trang trong chế độ xem cakephp, nó không nhớ các phần của url được tùy chỉnh cho số dặm của tôi.Tại sao người tổ chức không nhớ thông số tùy chỉnh của tôi khi tôi chuyển đến trang 2?

Ví dụ:

http://example.org/users/index/moderators/page:2/sort:name/dir:asc 

đây điều hành viên là một tham số đó giúp tôi lọc theo loại đó. Nhưng nhấn vào liên kết paginator sẽ không bao gồm liên kết này.

Trả lời

4

Để thêm vào câu trả lời của Alexander Morland ở trên, đáng nhớ rằng cú pháp đã thay đổi trong CakePHP 1.3 và hiện tại:

$this->Paginator->options(array('url' => $this->passedArgs)); 

Điều này được mô tả thêm trong phần pagination in views của sách CakePHP.

11

Bí quyết là thêm dòng này để xem bạn:

$ paginator-> Tùy chọn (array ('url' => $ this-> passedArgs));

(Tôi tạo ra câu hỏi này và câu trả lời bởi vì nó là một câu hỏi nhiều yêu cầu và tôi tiếp tục phải đào ra câu trả lời vì tôi không thể nhớ nó.)

0

$ this-> passedArgs là cách ưa thích để làm điều này từ chế độ xem.

0

Bạn đã lưu tôi! Điều này đã giúp tôi rất nhiều, Cảm ơn.

Tôi cần một cách để chuyển các tham số ban đầu được gửi qua bài đăng ($ this-> data) tới thành phần phân trang, vì vậy truy vấn tùy chỉnh của tôi sẽ tiếp tục sử dụng chúng.

Dưới đây là những gì tôi đã làm:.

trên quan điểm của tôi tôi đặt

$paginator->options(array('url'=>$this->data['Transaction'])); 

trước $ paginator-> trước ('< < trước' thứ

Việc làm này được thực hiện tiếp theo liên kết trên trang viên như " .../trang: 1/start_date: 2000-01-01% 2000: 00: 00/end_date: 3000-01-01% 2023: 59: 59/payments_recieved: 1"

Sau đó trên bộ điều khiển của tôi, tôi chỉ cần lấy thông số và đặt chúng vào $ this-> dữ liệu để chức năng của tôi sẽ tiếp tục như bình thường:

foreach($this->params['named'] as $k=>$v) 
{ 
    /* 
    * set data as is normally expected 
    */ 
    $this->data['Transaction'][$k] = $v; 
} 

Và đó là nó. Phân trang hoạt động với truy vấn tùy chỉnh của tôi. :)

0

Các tùy chọn ở đây là một dẫn tốt ... Bạn cũng có thể kiểm tra để biết thêm về CakePHP pagination tại cakephp.org/view/166/Pagination-in-Views

-1

Với param 'url' bạn chỉ có thể đặt chuỗi ưa thích của bạn trước khi pagination chuỗi trong url ..

nếu tôi sử dụng tecnique này:

$urlpagin = '?my_get1=1&my_get2=2'; 
$paginator->options = array('url'=>$urlpagin); 

tôi chỉ có được:

url/controller/action/?my_get1=1&my_get2=2/sort:.../... 

và Bánh mất thông số nhận được của tôi

Bạn có một tecnique thay thế không?

+1

vui lòng không đăng câu hỏi làm câu trả lời .. –

+0

không chuyển tham số dưới dạng $ _GET [] ... url của bạn phải là ... url/controller/action/par1: val1/par2: val2 – Yashvit

Các vấn đề liên quan