2014-10-13
Bekerja Dengan Database Kelas CActiveRecord • Kelas dasar untuk representasi database relasional • Mengacu pada suatu tabel dan rekamannya
Propety • attributes • commandBuilder • db • dbConnection • dbCriteria • isNewRecord • primaryKey • safeAttributeNames • tableAlias • tableSchema • validators Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
Public methode
findByAttributes()
findByPk() findBySql()
getDbConnection() getDbCriteria()
getErrors() insert() model() relations() resetScope()
rules() save() saveAttributes() scopes() tableName() update() updateAll() updateByPk() updateCounters() validate() with()
Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
1
2014-10-13
Protected methode
count() delete() deleteAll() deleteAllByAttributes() deleteByPk() exists() find() findAll() findAllByAttributes() findAllByPk()
• • • • • • • • • • • •
findAllBySql() afterConstruct() afterDelete() afterFind() afterSave() afterValidate() beforeDelete() beforeFind() beforeSave() beforeValidate() instantiate() query() Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
Events
onBeforeSave onAfterSave onBeforeDelete onAfterDelete onBeforeFind onAfterFind onAfterConstruct onBeforeValidate onAfterValidate onUnsafeAttribute Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
2
2014-10-13
Operasi CRUD
Create
Menambah rekaman baru
Read ◦ Membaca rekaman
Update ◦ Mengubah rekaman
Delete ◦ Menghapus rekaman
Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
Create Menambah rekaman tabel kota kelas Kota adalah perluasan kelas CActiveRecrord Contoh : $model = new Kota; $model->kode_kota=‘0110’; $model->nama_kota=‘Yogyakarta’; $model->kode_prop=‘01’; $model->save();
Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
3
2014-10-13
Update $model = new Kota; $model->findByPk(‘0110’); $model->nama_kota=‘Bantul’; $model->kode_prop=‘01’; $model->save(); Perintah : $model->findByPk(‘0110’); Mencari rekaman berdasarkan kunci utama (primary key) Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
Read/filter Terdapat sejumlah methode yang sering digunakan untuk pembacaan rekakam • • • • • •
find() findByPk() findAll() findAllByAttributes() findAllByPk() findAllBySql() Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
4
2014-10-13
find() membaca rekaman dengan menggunakan parameter kondisi yang akan menghasilkan 1 rekaman. Contoh : $nilai=Nilai::model()->find( array('condition'=>'mapel_id'=:m_id AND semester_id=:smt_id’, 'params'=>array(':m_id'=>$mapel_id, ’:smt_id’=>$smt_id)))->nilai; echo $nilai; Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
Bagan find()
Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
5
2014-10-13
finByPk() Perintah pembacaan rekaman berdasarkan kunci pecarian dengan menggunakan kunci primer $model = Kota::model()->finByPk(‘0110’); atau $model = Kota::model()->finByPk(arry(‘kode_kota’=>’0110’)); Menampilkan hasilnya nama_kota; ?>
Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
findAll() methode findAll() menampilkan semua rekaman. (SELECT * FROM tabel) $model=Kota::model()->findAll(); Atau $model=Kota::model()->findAll(array('select'=>‘kode_kota,nama_kota,)); // menampilkan hasilnya foreach ($model as $hasil) { echo $hasil->kode_kota; echo $hasil->nama_kota; echo “
6
2014-10-13
findAllByAttributes() Digunakan untuk menemukan data yang memiliki attribute tertentu. tapi data yang di hasilkan lebih dari 1 row data. $mhsId='12001'; $model = Nilai::model()->findAllByAttributes(array('mhs_id'=>$mhsId)); foreach($model as $models) { echo "
"; echo "MK :" . $models->mk_id . ", Nilai :" . $models->nilai; } ?>
Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
findByAttributes() methode untuk membaca rekaman dengan menggunakan parmeter atribut dan nilai atribut findAllByAttributes( array('mk_id'=>'MK011')); foreach($model as $models) { echo "
"; echo "NIM :" . $models->mhs_id . " MK :" . $models->mk_id . ", Nilai :" . $models->nilai; } ?> Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
7
2014-10-13
findAllByPk() methode untuk membaca rekaman dengan parameter array nilai-nilai kunci primer. Contoh : $model = Nilai::model()->findAllByPk(array(1,2,3)); foreach($model as $models) { echo "
"; echo "ID :" . $models->id . ", Nilai :" . $models->nilai; }
Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
findAllBySql() untuk membaca rekaman dengan menggunakan parameter perintah SQL findAllBySql( 'SELECT mhs_id,mk_id,nilai FROM nilai'); foreach($model as $models) { echo "
"; echo " NIM :" . $models->mhs_id . " MK :" . $models->mk_id . " Nilai :" . $models->nilai; } ?>
Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
8
2014-10-13
findAllBySql()
dengan menggunakan parameter
findAllBySql( 'SELECT * FROM nilai WHERE mhs_id=:mhs_id', array(':mhs_id'=>'12001')); foreach($model as $models) { echo "
"; echo "NIM :" . $models->mhs_id . " MK :" . $models->mk_id . " Nilai :" . $models->nilai; } ?>
Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
Delete (1)
deleteByPk() menghapus rekaman mengapus menggunakan parameter kunci primer. $id=1; $model = Nilai::model()->deleteByPk($id);
Atau $model = Nilai::model()->findByPk($id); $model->delete();
Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
9
2014-10-13
Delete (2) deleteAll() digunakan untuk menghapus lebih dari satu rekaman $mk_id=’MK012’; $criteria = new CDbCriteria(); $criteria->condition = 'mk_id=:mk_id'; $criteria->params = array(':mk_id'=>$mk_id); $model = Nilai::model()->deleteAll($criteria)
Pemrograman Web Lanjut Framework Yii, Dosen : Badiyanto, S.Kom., M.Kom
10