WHAT'S NEW?


Yii 1 - Function Pada Model (Yii - Model)


Pada saat membuat MODEL lewat generator Gii maka akan tercipta kelas/model TblPegawai dan fungsi/metode yang terdapat di dalamnya. Adapun struktur yang tertulis kode dalam file TblPegawai.php terdiri dari :

1. Class ActiveRecord

//kelas yang dibentuk Gii

class TblPegawai extends CActiveRecord


       Untuk mengakses database, pertama perlu mendefinisikan kelas AR (Acive Record) dengan menurut CActivRecord. Sintaks diatas adalah deklarasi kelas dengan menurunkan kelas ekstensi CActiveRecord (kelas dari library Yii) dengan public $nilai sebagai pernyataan jika ingin menambahkan variable sendiri dalam kelas TblPegawai.

2. Function Model()

    public static function model($className=__CLASS__)
    {
        return parent::model($className);
    }

       Meskipun Yii DAO secara virtual dapat menangani setiap tugas terkait database, kemungkinan kita akan menghabiskan 90% waktu kita dalam penulisan beberapa pernyataan SQL yang melakukan operasi umum CRUD (create, read, update dan delete) tetap ada. Pemeliharaan kode kita saat dicampur dengan pernyataan SQL juga akan menambah kesulitan. Untuk memecahkan masalah ini, kita dapat menggunakan Active Record. Active Record (AR) adalah teknik populer Pemetaan Relasional Objek / Object-Relational Mapping (ORM). Setiap kelas AR mewakili tabel database (atau view) yang atributnya diwakili oleh properti kelas AR, dan turunan AR mewakili baris pada tabel tersebut. Operasi umum CRUD diimplementasikan sebagai metode AR. Hasilnya, kita dapat mengakses data dengan cara lebih terorientasi-objek.

3. Function TableName()

public function tableName()
{
      return 'tbl_pegawai';
}
Setiap kelas Active Record mewakili satu tabel dalam database, dan instan AR mewakili sebuah record (baris) dalam tabel tersebut. Contoh di atas memperlihatkan kode minimal yang diperlukan untuk kelas AR yang mewakili tabel tbl_pegawai.

4. Function Rules()

   public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('nip, nama, alamat, jk, tgl_lhr, gol_id', 'required'),
            array('gol_id', 'numerical', 'integerOnly'=>true),
            array('nip', 'length', 'max'=>5),
            array('nama, alamat', 'length', 'max'=>40),
            array('jk', 'length', 'max'=>1),
            // The following rule is used by search().
            // Please remove those attributes that should not be searched.
            array('nip, nama, alamat, jk, tgl_lhr, gol_id', 'safe', 'on'=>'search'),
        );
    }

Fungsi rules untuk mengatur validasi masukan. Sebuah atribut dianggap aman jika ditulis dalam aturanvalidasi. Misalnya pernyataan: array array(‘nip, nama, alamat, jk, tgl_lhr, gol_id’, ‘required’), isian nip, nama, alamat, jk, tgl_lhr dan gol_id isian tidak boleh kosong. Pada array(‘gol_id’, ‘numerical’, ‘integerOnly’=>true), Isian harus berupa angka/integer. Kemudian array(‘nip’, ‘length’, ‘max’=>5),membatasi isian nip maksimal 5 karakter.

5. Function Relation()

    public function relation()
    {
         return array(
         'gol'=>array(self::BELONGS_TO, 'TblGolongan','gol_id'),
             );
     }

Fungsi ini digunakan untuk meletakkan relasi tabel yang diimplementasikan lewat kelas (model). Pada bagian ini membahas kelas TblPegawai relasi dengan kelas TblGolongan, kunci relasi foreign key ‘gol_id; di tabel tbl_pegawai, ke primary key ‘id’ di tbl_golongan.

6. Function AttributeLabel()

    public function attributeLabels()
    {
        return array(
            'nip' => 'Nip',
            'nama' => 'Nama',
            'alamat' => 'Alamat',
            'jk' => 'Jk',
            'tgl_lhr' => 'Tgl Lhr',
            'gol_id' => 'Gol',
        );
    }
Ketika mendesain sebuah FORMULIS isian, seringkali perlu menampilkan label untuk setiap field masukkan. Label memberi tahu user jenis informasi apa yang harus dimasukkan ke dalam field isian. Meskipun dapat memberi label secara langsung dalam sebuah tampilan, akan lebih fleksibel dan nyaman jika anda menetapkannya dalam model terkait. Secara default kelas CModel akan mengembalikan nama atribut yang terdapat tabel sebagai label. Sehingga mempercepat dalam pembuatan formulir masukan pada halaman web. Biasanya fungsi ini sering dipakai dalam pembuatan actionCreate pada Form di Controllers

7. Function Search()

    public function search()
    {
        $criteria=new CDbCriteria;
        $criteria->compare('nip',$this->nip,true);
        $criteria->compare('nama',$this->nama,true);
        $criteria->compare('alamat',$this->alamat,true);
        $criteria->compare('jk',$this->jk,true);
        $criteria->compare('tgl_lhr',$this->tgl_lhr,true);
        $criteria->compare('gol_id',$this->gol_id);
        return new CActiveDataProvider($this, array(
            'criteria'=>$criteria,
        ));
    }

Pada bagian yang digunakan untuk pencarian berdasarkan field yang terdapat pada tabel. Fungsi ini lewat kelas CDbCriteria dan menggunakan metode compare untuk perbandingan sebagai metode pencarian seperti halnya perintah LIKE dalam SQL. Biasanya fungsi ini dipakai dalam actionAdmin pada controllers.

8. Function Tambahan()

   public function JenisKelamin()
    {
        return array(
               'L'=>'L - Laki-laki',
               'P'=>'P - Perempuan',
        );
    }

Dalam model atau kelas adalam representasi dari tabel, dibagian ini dapat menambahkan variabel atau method/fungsi. Skrip dengan fungsi yang diberi nama jenisKelamin(), dan fungsi mengembalikan nilai array(‘L’=>’L – Laki-laki’, ‘P’=>’P – Perempuan’, );, untuk keperluan isian dalam bentuk kotak kombo DropDownList.
Cara memanggilnya TblPegawai::jenisKelamin(),TblPegawai adalah nama kelas Tabel Pegawai dan jenisKelamin() fungsi/methode.

Sumber :
Badiyanto S.Kom, Buku Pintar framework Yii, 2013, Mediakom, Yogyakarta

0 komentar:

Posting Komentar