CRUD Yii2 – Membuat Buku Telepon – Step 4 (Read Data)

Pada tutorial CRUD Yii2 langkah yang ke 4 ini kita telah sampai pada menampilkan data-data yang telah dimasukan sebelumnya. Pada langkah menampilkan data, sama seperti pada tulisan sebelumya yang berjudul Menampilkan repo github pada gridview Yii2 dengan ArrayDataProvider, hanya saja kali ini kita akan menggunakan ActiveDataProvider sebagai Data Providernya.

Langsung saja kita masuk ke source code untuk menampilkan data (Read). Silahkan buka file PhoneBookController.php yang terdapat pada folder controller. Selanjutnya tambahkan sebuah method/action dengan nama actionIndex

public function actionIndex()
    {
        return $this->render('index', [
            'dataProvider' => new \yii\data\ActiveDataProvider([
                'query' => \app\models\PhoneBook::find(),
            ]),
        ]);
    }

Code diatas sama seperti tutorial Menampilkan repo github pada gridview Yii2 dengan ArrayDataProvider sebelum melalukan render terhadap view, terlihat bahwa kita juga mengirimkan DataProvider.

Lanjut ke tahap selanjutnya, yaitu membuat file index.php didalam folder views/phone-book, dengan ini sebagai berikut.

<?php

use yii\helpers\Html;
use yii\grid\GridView;

/* @var $this yii\web\View */
/* @var $dataProvider yii\data\ActiveDataProvider */

$this->title = 'Phone Books';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="phone-book-index">

    <h1><?= Html::encode($this->title) ?></h1>
    <p>
        <?= Html::a('Create Phone Book', ['create'], ['class' => 'btn btn-success']) ?>
    </p>

    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

            'id',
            'name',
            'phone',

        ],
    ]); ?>
</div>

Setelah semua code selesai dibuat, langsung saja kamu  akses ke lewat browser kesayanganmu http://localhost:8080/phone-book/index dan lihat hasilnya.

 

Sebagai tambahan kita merubah sedikit code pada method actionCreate, menambahkan redirect halaman ke halaman index setelah proses insert data berhasil dilakukan, kita ubah code nya menjadi seperti dibawah ini.

if ($model->load(Yii::$app->request->post()) && $model->save()) {

            return $this->redirect(['index']);
        }

dan hasil akhir sampai saat ini, untuk code bagian Controller (PhoneBookController.php) adalah

<?php

namespace app\controllers;

use Yii;
use yii\web\Controller;

class PhoneBookController extends Controller {

    public function actionIndex()
    {
        return $this->render('index', [
            'dataProvider' => new \yii\data\ActiveDataProvider([
                'query' => \app\models\PhoneBook::find(),
            ]),
        ]);
    }

    public function actionCreate(){
        $model = new \app\models\PhoneBook();

        if ($model->load(Yii::$app->request->post()) && $model->save()) {

            return $this->redirect(['index']);
        }

        return $this->render('create', [
            'model' => $model
        ]);
    }

}

 

Pada tahapan ke 5, kita akan membahas bagaimana cara melakukan perubahan data

No Responses

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.