CRUD Yii2 – Membuat Buku Telepon – Step 2 (Membuat Model)

Dalam Step 1 (CRUD Yii2 – Membuat Buku Telepon – Step 1 (Migrasi Database)) kita telah membahas masalah Migrasi, yang mana migrasi tersebut berguna untuk mengontrol struktur basis data (Database). Pada pembuatan aplikasi menggunakan Yii2, kita akan mengenal yang namanya MVC (Model-View-Controller) dimana Model ini berfungsi untuk mengelola basis data seperti memasukan ke database, membaca isi database dan lain sebagainya.

Pada step 2 ini kita akan konsentrasi tentang pembuatan Model, langsung saja kita mulai dengan membuat file PhoneBook.php pada folder models

<?php

namespace app\models;

use yii\db\ActiveRecord;

class PhoneBook extends ActiveRecord {

    public static function tableName() {
        return '{{%phone_book}}';
    }

    public function rules() {
        return [
            [['name', 'phone'], 'required'],
            [['name'], 'string', 'max' => 100],
            [['phone'], 'string', 'max' => 20],
            [['phone'], 'unique'],
        ];
    }

    public function attributeLabels() {
        return [
            'id' => 'ID',
            'name' => 'Name',
            'phone' => 'Phone',
        ];
    }
}

Pada kode diatas terdapat beberapa fungsi-fungsi standard seperti

tableName() berfungsi untuk menentukan nama tabel untuk model tersebut

rules() berfungsi untuk menentukan aturan-aturan tiap-tiap kolom pada suatu tabel

attributeLabels() berfungsi untuk memberikan label tiap-tiap kolom

Sedikit penjelasan tentang rules yang tertulis pada code Model diatas

[['name', 'phone'], 'required']

Kolom name dan phone tidak boleh kosong

[['name'], 'string', 'max' => 100]

Kolom name berisi maksimal karakter 100

[['phone'], 'string', 'max' => 20]

Kolom phone berisi maksimal karakter 20

[['phone'], 'unique']

Kolom phone harus unik atau tidak boleh ada nomor yang sama

 

Pada langkah selanjutnya kita akan membuat Controller dan View untuk melakukan Create/Menambah 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.