hình ảnh minh họa
Giả sử ta làm việc với bảng dữ liệu như trong bài trước. Ta sẽ thay đổi nội dung file InfosController như sau :
<?php
class InfosController extends AppController{
var $name = "Infos";// ten cua Controller Info
var $helpers = array('Paginator','Html');
var $components = array('Session');
var $paginate = array();
function paging(){
$this->paginate = array(
'limit' => 3,
'order' => array('id' => 'desc'),
);
$data = $this->paginate("Info");
$this->set("data",$data);
}
?>
Để sử dụng chức năng phân trang trong CakePHP Framework thì cần có helper Paginator
var $helpers = array('Paginator','Html');
và namespace paginate
var $paginate = array();
Chúng ta sẽ lấy 3 bản ghi đầu tiên theo id giảm dần
$this->paginate = array(
'limit' => 3,
'order' => array('id' => 'desc'),
);
Để lấy dữ liệu theo cấu hình của biến namespace paginate ta dùng hàm
$this->paginate("ten_model")
trong ví dụ này model của tôi có tên là Info.
$data = $this->paginate("Info")
Việc cấu hình biến namspace paginate dùng hàm
$this->paginate("ten_model")
Giống như việc cấu hình điều kiện truy xuất dữ liệu và lấy dữ liệu bằng hàm $this->find(‘…’).
Như vậy là chúng ta có thể phân trang trong CakePHP Framework, mặc định CakePHP sẽ dùng biến page để xác định trang hiện tại. Bây giờ chúng ta chỉ cần xây dựng view để hiển thị phân trang trong quá trình học PHP.
Trong thư mục app/views/infos ta tạo một file có tên là paging.ctp có nội dung như sau :
<html>
<body>
<?php
// Tạo link về trang trước
echo $this->Paginator->prev('« Previous ', null, null, array('class' => 'disabled'));
// Tạo link tương ứng với số trang
echo " | ".$this->Paginator->numbers()." | ";
// Tạo link đi đến trang sau
echo $this->Paginator->next(' Next »', null, null, array('class' => 'disabled'));
// Hiển thị trang hiện tại và tổng số trang
echo " Page ".$this->Paginator->counter();
?>
<?php
if($data==NULL){
echo "<h2>Dada Empty</h2>";
}
else{
echo "<table>
<tr>
<td>id</td>
<td>Name</td>
<td>Email</td>
<td>Phone</td>
</tr>";
foreach($data as $item){
echo "<tr>";
echo "<td>".$item['Info']['id']."</td>";
echo "
<td><a href='".$this->webroot."infos/view/".$item['Info']['id']."' >".$item['Info']['name']."</a>
</td>";
echo "<td>".$item['Info']['email']."</td>";
echo "<td>".$item['Info']['phone']."</td>";
echo "</tr>";
}
}
?>
</body>
</html>
Nguồn: the gioi web
0 nhận xét:
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.