Tutorial ini adalah bagian 3 tutorial sebelumnya yang membahas teknik koneksi database dan Operasi CRUD dasar. Mengingat ORM ini adalah teknik baru dan agar tutorial ini bisa digunakan secara independen tanpa membaca 3 artikel selanjutnya maka saya akan menampilkan kembali struktur tabel, struktur project dan tampilan UInya. Perbedaan mendasar antara teknik ORM denga teknik sebelumnya, disini anda tidak perlu melakukan query secara manual.
Sebelum lebih jauh, silahkan anda baca konsep Active Record dan ORM di website Wikipedia untuk melihat gambaran ORM dan website phpactiverecord.org untuk mengetahui cara kerja Active Record. Konsep ORM pertama kali dipopulerkan oleh hibernate dan Active record diadopsi dari RUby on Rail.
Catatan lain disini, PHP active record (ORM) ini memanfaatkan driver PDO, artinya teknik ini bisa dipakai disembarang database DENGAN SYARAT databasenya didukung oleh PHP. Selain librari ini, sebenarnya library ORM di PHP sangat banyak seperti contohnya Propel, doctrine dan redbeanPHP. Saya memilih menggunakan Active record karena librarinya kecil, mudah dipahami dan powerful.
Rancangan Tabel kampus
CREATE TABLE IF NOT EXISTS `kampus` ( `idkampus` int(11) NOT NULL AUTO_INCREMENT, `nama` varchar(50) NOT NULL, `alamat` varchar(100) NOT NULL, PRIMARY KEY (`idkampus`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
Struktur File project
| index.php | +---assets | +---css | +---fonts | +---js +---inc | config.php +--- ORM Lib +--ActiveRecord.php +---model +----kampus.php | +---kampus kampus_action.php kampus_form.php kampus_view.php
Jika dibandingkan dengan Tutorial sebelumnya, tampak perbedaannya ada pada file ActiveRecord.php dan folder ORMlib yang berisi file library PHP untuk mendukung operasi database menggunakan teknik ORM. Perbedaan selanjutnya ada folder baru dengan nama model
dengan isinya file kampus.php
. Catatan disini, karena tabel kita cuma satu, maka modelnya cuma satu, namun jika kita punya banyak tabel maka isi model ini juga akan sebanyak tabelnya.
Tampilan Web
Code Program
model data
ORM memetakan struktur database relasional menjadi Object. Tujuannya agar database bisa dengan mudah dimanipulasi dengan style OOP. PHP active record sendiri adalah library yang menekankan pada kemudahan dan konvensi penulisan kode. Salah satu konvensinya adalah setiap primary key harus diberi nama id dengan tipe integer auto increment. Namun klo kia analisa tabel kita tidak mengikuti konvensi yang ditetapkan oleh librari ini. Solusinya? buat konfigurasi didalam kelas kampus.php
class Kampus extends ActiveRecord\Model { static $table_name = 'kampus'; # explicit pk since our pk is not "id" static $primary_key = 'idkampus'; }
Koneksi database
ActiveRecord\Config::initialize(function($cfg) { $cfg->set_model_directory('model'); $cfg->set_connections(array('development' => 'mysql://root:@127.0.0.1/candralab')); });
Tampil data
$kampus=new Kampus(); $data=$kampus->find('all'); foreach ($data as $kampus) { echo $kampus->nama; echo $kampus->alamat; }
Kode diatas sama fungsinya dengan query select * from kampus
. Fungsi $kampus->find('all')
adalah fungsi bawaan dari ORM untuk menampilkan seluruh data di tabel. Fungsi lain bisa anda baca di http://www.phpactiverecord.org/projects/main/wiki/Finders
Insert data
$kampus = new Kampus(); $kampus -> nama = $_POST['nama']; $kampus -> alamat = $_POST['alamat']; $kampus -> save();
update data
$kampus = Kampus::find($id); $kampus -> nama = $_POST['nama']; $kampus -> alamat = $_POST['alamat']; $kampus -> save();
delete data
$kampus = Kampus::find($id); $result = $kampus -> delete();
Perhatikan sekali lagi, ORM merevolusi cara kita berinteraksi dengan database, dengan ORM tidak perlu lagi query manual. Ingat! tutorial ini hanya pengantar singkat (quick star) dari PHP ORM. Jika anda ingin mempelajari lebih lanjut silahkan berkunjung ke websitenya di http://www.phpactiverecord.org.
Download source code
DOWNLOAD DISINI. Source code ini mencakup 3 tutorial sebelumnya. Untuk cara instalasi dan setingnya di komputer lokal, silahkan baca file README.txt
.
itu variabel $kampus nya tidak terbaca. coba ini : $kampus = ”;
Tutorial Crud PHP Mysql di Insert data ditambah $kampus -> photo = $_POST[‘photo’]; cari photo di file
Mas mau tanya ketika saya running project ORMnya
ada warning seperti ini ketika mau tambah data
Notice: Undefined variable: kampus in C:xampphtdocsormkampuskampus_form.php on line 21Notice: Trying to get property of non-object in C:xampphtdocsormkampuskampus_form.php on line 21
itu kira2 variable apa yah yang tidak terdeteksi?
Matur nuwun
sama, masalah muncul gitu juga pada objek Mysqli