Pada materi sebelumnya, kita telah mempelajari cara membuat template view dengan View
Layout dan View Partial.
View partial memang bagus untuk memisahkan kode view yang sering digunakan. Ia juga
sebenarnya mampu mengenai variable data yang dikirim dari controller. Namun
kekurangannya, ia tidak bisa menerima data parameter saat kita menggunakannya di dalam
View.
View layout memang akan memudahkan kita dalam membuat template untuk halaman, Namun,
pada partial layout tidak bisa menerima parameter data saat kita menggunakannya di dalam
View. Misalnya :
<?= $this->include('header', ['title' => "Belajar CI 4"]) ?>
Pada kode ini, kita ingin include view partial header dengan memberikan data title. Namun
tidak bisa dilakukan, oleh karena itu kita bisa menggunakan View Cell untuk masalah ini.
Kita bisa bayangkan view cell seperti widget yang bisa kita tempel di view mana saja
Class view cell bisa menerima data dari parameter dan juga bisa mengakses data dari model.
Cara kerjanya mirip seperti controller. Namun perlu diingat, class view cell bukanlah controller,
karena itu tidak bertugas untuk membalas sebuah request. Ia hanya class yang bertugas
membuat HTML.
class Widget
{
e. Pembuatan widget sudah selesai, namu belum kita gunakan. Kita akan gunakan
widget recentPost di dalam view sidebar.php.
f. Bukalah file app/Views/layout/sidebar.php, kemudian ubah semua kodenya menjadi
seperti ini:
<?= view_cell('\App\Libraries\Widget::recentPost') ?>
Fungsi view_cell() adalah fungsi untuk menggunakan View Cell
g. Bukalah localhost:8080/news. Hasilnya:
class Widget
{
Bisa akses data dari Model? ya, karena punya class sendiri tidak, harus melalui controller