Tuesday, May 4, 2010

Contoh Model dengan Doctrine

Pertama-tama kita diharuskan untuk meng-extends model yang kita buat dari kelas Doctrine_Record.

            class Mahasiswa extends Doctrine_Record {

Kemudian baru kita bisa mendefinisikan atribut-atribut yang merupakan representasi skema di database. Doctrine menyediakan function setTableDefinition untuk mendefinisikan atribut tersebut. Di dalam function tersebut, kita bisa menambahkan atribut beserta property-nya dengan perintah hasColumn seperti pada contoh.
        public function setTableDefinition()
        {
            $this->hasColumn('npm', 'string', 8);           
            $this->hasColumn('name', 'string', 50);
        …
        }
Atribut-atribut tersebut dinyatakan secara eksplisit sebagai kolom daru tabel Mahasiswa, sesuai dengan nama kelas.

Jika kita membutuhkan sebuah field dari table, kita hanya perlu meminta Doctrine untuk mengakses model yang telah dibuat dan dipetakan dengan tabel di database untuk menghasilkan objek-nya, kemudian mengakses data pada atribut seperti cara mengakses sebuah atribut pada objek.

Contohnya :
$mahasiswa = Doctrine_Query::getTable(‘Mahasiswa’)->findAll();
$name = $mahasiswa->name;

Berikut ini kode lengkapnya :
    class Mahasiswa extends Doctrine_Record {
        // define table columns to match table scheme in database
        public function setTableDefinition()
        {
            $this->hasColumn('npm', 'string', 8);           
            $this->hasColumn('name', 'string', 50);
            $this->hasColumn('gender', 'enum', null, 
                array('values' => array('laki-laki', 'perempuan'))
            );
            $this->hasColumn('email', 'string', 35, array(
                    'email'      => true,
                    'unique' => true
                )
            );
        }
    }

No comments:

Post a Comment