Tutorial Cakephp Dasar Part Iii – Sorting, Pagination

Tutorial Cakephp Dasar Part Iii - Sorting, Pagination

Updated: 20 Mei 2014

Akhirnya serial tutorial CakePHP ini sanggup saya lanjutkan. Mohon maaf usang nunggu tutorial CakePHP ini soalnya saya juga menciptakan tutorial-tutorial yang lainnya. Untuk melihat tutorial-tutorial saya, silakan klik #tutorial-cheyuz. Selain itu, kerjaan-kerjaan lain sangat menumpuk di to do list saya, hehe.. Makara mohon maklum.

Ok, untuk tutorial pada part III ini sesuai akad saya kita akan menciptakan Pagination dan Sorting untuk data yang akan ditampilkan. Dengan menggunakan CakePHP, kita tidak “dikasih” ribet dalam pembuatan dua makhluk ini. Bagi yang sudah mempelajari menggunakan framework lain, ibarat Codeigniter maupun framework lainnya, tentu sudah tidak absurd lagi dengan dua istilah ini. Bagi yang belum tahu, pagination ialah suatu “page number” pada halaman website, lengkap dengan nomor halaman, tombol previous, dan tombol next. Simpelnya, coba kunjungi Google, lalu cari sesuatu, nah di situ terdapat page number di bab bawah.

Kita akan melanjutkan tutorial dari aplikasi yang pernah dibentuk sebelumnya, yang terdapat pada Tutorial CakePHP Dasar Part II. Oh iya, kini level tutorial ini sudah masuk ke dalam level “Newbie”, hehe…

Sebelum pagination dibuat, tambahkan data pada article kau sebanyak mungkin pada url: http://localhost/blogku/artikel/tambah. Dimisalkan di sini kita menciptakan 10 data.

Pagination

Untuk menciptakan sebuah pagination pada CakePHP, kita harus mendefinisikan batasan (limit) untuk setiap list data yang ditampilkan. Caranya ialah dengan menambahkan arahan berikut pada controller:

$this->paginate = array('limit' => 3);

Arti arahan di atas yaitu definisikan batasan untuk data yang ditampilkan sebanyak 3 data.

Kemudian, sesudah itu masih di controller yang sama, di bawah arahan tersebut tambahkan arahan berikut:

$data = $this->paginate('NamaModel');

Dengan menggunakan arahan tersebut maka isi dari $data ialah model “NamaModel” dengan menggunakan pagination.

Kita implementasikan pada controller ArtikelController.php yang sebelumnya sudah dibuat, pastikan arahan pada function index() ialah sebagai berikut:

function index(){  $artikel = $this->Artikel->find('all');  $this->set('artikel', $artikel);}

Nah, sebelum variable $artikel didefinisikan, kita akan menciptakan 2 arahan di atas untuk dibentuk di dalam function index tersebut. Dan alasannya kita akan menggunakan pagination, maka kode $artikel = $this->Artikel->find(‘all’); akan dihapus. Kodenya akan berkembang menjadi ibarat ini:

function index(){  $this->paginate = array(  'limit' => 3  );  $artikel = $this->paginate('Artikel');  $this->set('artikel', $artikel);}

Untuk setting pada controller sudah selesai, selanjutnya kita akan memodifikasi file view, yaitu pada file /View/Article/index.ctp. Tambahkan3 baris arahan berikut sesudah tag </table>.

<div class="paging"><?phpecho $this->Paginator->prev(' < Sebelumnya', array(), null, array('class' => 'prev disabled'));echo $this->Paginator->numbers(array('separator' => ''));echo $this->Paginator->next('Selanjutnya >', array(), null, array('class' => 'next disabled'));?></div>

Catatan:
Pada CakePHP versi terbaru, helper Paginator secara default sudah diload oleh CakePHP. Jika contohnya Paginator undefined, maka kau tinggal load helper Paginator dengan cara menambahkan kode:

public $helpers = array('Paginator');

Disimpan di dalam controller, tetapi di luar function, alasannya $helpers ialah properti/atribut dari class Controller.

Sorting

Sorting ialah teknik pengurutan data di dalam view semoga data sanggup ditampilkan menurut urutan tertentu (order). Cara memperlakukan sorting yaitu dengan cara mengklik nama field di setiap kolom data. Membuat Sorter pada CakePHP sangat sangat mudah, alasannya kita menggunakan helper Paginator yang sudah kita pakai sebelumnya. Langsung saja, kita buka file /View/Article/index.ctp, lalu edit di setiap judul kolom pada table yang asalnya ibarat ini:

<thead>  <tr><th>ID</th><th>Judul</th><th>Konten</th><th>Tanggal Dibuat</th><th>Aksi</th>  </tr></thead>

Menjadi ibarat berikut:

<thead>  <tr><th><?php echo $this->Paginator->sort('id','ID'); ?></th><th><?php echo $this->Paginator->sort('judul','Judul'); ?></th><th><?php echo $this->Paginator->sort('konten','Konten'); ?></th><th><?php echo $this->Paginator->sort('created','Tanggal Dibuat'); ?></th><th>Aksi</th>  </tr></thead>

Function sort() pada helper Paginator berfungsi untuk mengubah nama field biasa menjadi sebuah sorter. Di dalamnya terdapat 2 buah argumen/parameter, yaitu nama field dan label. Setelah kita refresh, maka table akan eksklusif sanggup diurutkan menurut Judul, Konten, maupun Tanggal Dibuat. Caranya ialah dengan mengklik teks tersebutTutorial Cakephp Dasar Part Iii - Sorting, Pagination

Tutorial Cakephp Dasar Part Iii - Sorting, Pagination

Selamat mencobaTutorial Cakephp Dasar Part Iii - Sorting, Pagination

Stand By With Me, 
cheyuz@jagocoding.com