Tutorial Paging dengan Phalcon PHP Framework



Setelah sebelumnya saya membuat tutorial mengenai CRUDS dengan phalcon php framework yaitu Create,Read,Update,Delete, dan Search.

Sekarang saya akan membuat tutorial mengenai paging di phalcon framework. Ada baiknya anda download database terlebih dahulu pada tutorial sebelumnya disini(dipaling bawah ada link untuk download databasenya).

Setelah itu kita insert data sekitar 20 data atau anda bisa copy query dibawah ini dan eksekusi :
INSERT INTO `user` (`id_user`, `nama_user`, `email_user`) VALUES
(1, 'Kanny Edit Test', 'email1'),
(2, 'kanny_mahesa', 'email2'),
(3, 'namauser3', 'email3'),
(4, 'namauser4', 'email4'),
(5, 'namauser5', 'email5'),
(6, 'namauser6', 'email6'),
(7, 'namauser7', 'email7'),
(8, 'namauser8', 'email8'),
(9, 'namauser9', 'email9'),
(10, 'namauser10', 'email10'),
(11, 'namauser11', 'email11'),
(12, 'namauser12', 'email12'),
(13, 'namauser13', 'email13'),
(14, 'namauser14', 'email14'),
(15, 'namauser15', 'email15'),
(16, 'namauser16', 'email16'),
(17, 'namauser17', 'email17'),
(18, 'namauser18', 'email18'),
(19, 'namauser19', 'email19'),
(20, 'namauser20', 'email20');


Oke setelah data masuk semua sejumlah 20 , sekarang saatnya kita akan membuat pagination dengan phalcon framework.

Buat controller dengan nama UserController.php dan buat method indexAction , sehingga isi dari :

UserController.php :
<?php
use Phalcon\Paginator\Adapter\Model as Paginator;
class UserController extends ControllerBase
{

    public function indexAction()
    {

  $numberPage = $this->request->getQuery("page", "int");
  $user = User::find();
  
  
  
  $paginator = new Paginator(array(
   "data"  => $user,
   "limit" => 3,
   "page"  => $numberPage
  ));
  
  $this->view->page = $paginator->getPaginate();
 }
 
  
}

use Phalcon\Paginator\Adapter\Model as Paginator;
Script diatas adalah library phalcon yang kita import untuk memanggil fungsi paging

$numberPage = $this->request->getQuery("page", "int");
variabel $numberPage adalah variabel untuk menunjukan halaman

$user = User::find();
Script diatas adalah untuk mengambil data user pada model user (Jika anda belum memahami menegnai script ini ada baikana anda membaca mengenai menampilkan data dengan phalcon framework)

$paginator = new Paginator(array(
            "data"  => $user,
            "limit" => 3,
            "page"  => $numberPage
));
Script diatas adalah script yang akan membuat paging ,dimana ada 3 array yang harus diinptkan nilai yaitu :
1. data : data adalah mereferensi pada data mana yang akan dipanggil
2. limit : limit adalah nila untuk menentukan baris maksimal yang akan ditampilkan pada contoh ini baris yang ditampilkan adalah 3
3. page : page adalah halaman yang dituju

$this->view->page = $paginator->getPaginate();
script diatas adalah untuk mempassing variabel page yang mana variabel page diisi dengan $paginator->getPaginate(); yang didalamnya sudah ada data dan konfigurasi paging yag sudah di set sebelumnya.

Oke , setelah kita berhasil membuat controller selanjutnya kita akan membuat model. buat model dengan nama User.php ,sehingga isi dari :


User.php :
<?php
class User extends \Phalcon\Mvc\Model
{
 public $id_user; // field id_user dalam tabel
 public $nama_user; // field nama_user dalam tabel
 public $email_user;// field email_user dalam tabel
}


Setelah kita membuat model , sekarang kita buat view. pada folder views buat folder dengan nama User dan buat file index.php dan isikan pada file
index.php :

{% for datas in page.items %}
{% if loop.first %}

{% endif %}
    
{% if loop.last %}
    <table align="center" border="1">
    <thead>
<tr>
            <th>Id</th>
            <th>Name</th>
            <th>Email</th>

        </tr>
</thead><tbody>
<tr>
            <td>{{ datas.id_user }}</td>
            <td>{{ datas.nama_user }}</td>
            <td>{{ datas.email_user }}</td>

        </tr>
</tbody><tbody>
<tr>
            <td align="center" colspan="3">{{ link_to("user/index", '<i class="icon-fast-backward"></i> First', "class": "btn btn-default") }}
                    {{ link_to("user/index?page=" ~ page.before, '<i class="icon-step-backward"></i> Previous', "class": "btn btn-default") }}
                    {{ link_to("user/index?page=" ~ page.next, '<i class="icon-step-forward"></i> Next', "class": "btn btn-default") }}
                    {{ link_to("user/index?page=" ~ page.last, '<i class="icon-fast-forward"></i> Last', "class": "btn btn-default") }}
     <br />
<span class="help-inline">Page {{ page.current }} Of {{ page.total_pages }}</span>
                
            </td>
        </tr>
</tbody><tbody>
</tbody></table>
{% endif %}
{% else %}
    No data
{% endfor %}

Setelah itu buka file tersebut pada browser anda dan selamat paging sudah selesai :D

Congrats you're flying with phalcon !!!

Silahkan download source lengkap dan database nya :
1. Source

Posting Komentar

2 Komentar