Belajar AR (Active Record) belajar active record yii
#21
Posted 04 January 2011 - 12:35 AM
#22
Posted 04 January 2011 - 01:35 AM

(What Yii Serve is What You Get)
#23
Posted 05 January 2011 - 03:02 AM
ibiz4, on 04 January 2011 - 01:35 AM, said:

Thanks gan buat votenya
www.yiiframework.com
#24
Posted 05 January 2011 - 03:24 AM
rianday, on 04 January 2011 - 12:35 AM, said:
baca aja tutorialnya neh gan
http://yii.googlecod...atabase.arr.txt
www.yiiframework.com
#26
Posted 06 January 2011 - 12:09 AM
menampilkan query hasil INNER JOIN untuk ditampilkan di CHTML::dropdownlist()...\
buat tugas ane neh gan...

#27
Posted 07 January 2011 - 03:00 AM
#28
Posted 13 January 2011 - 11:16 PM
udah saya vote,..
kalo bisa bantu saya cara ngesave dari dynamic textfield yang bisa terus nambah kalo diklik addmore
masih bingung cara nyimpennya ke db
#29
Posted 20 January 2011 - 03:25 AM
ressaince, on 13 January 2011 - 11:16 PM, said:
udah saya vote,..
kalo bisa bantu saya cara ngesave dari dynamic textfield yang bisa terus nambah kalo diklik addmore
masih bingung cara nyimpennya ke db
mungkin hanya perlu manipulasi saja gan, pas di aftersave() langsung direct ke url untuk action add
mahomaho ((^^))
www.yiiframework.com
#30
Posted 18 May 2011 - 09:13 AM
gw biasa dengan select from
tapi waktu di yii ketemunya akses pake findbypk() dll.
mau bikin login aja binun..dari form > controler > model dst..kok nggak nemu otentifikasi menggunakan select user,pwd from user seperti biasa pake php manual...
kalo bisa sih kasih pencerahannya buat saya sama temen2 yang baru belajar pake framework...TQ
#31
Posted 28 July 2011 - 01:11 AM

pengen banget bisa nguasain semuanya hehehee

#33
Posted 29 September 2011 - 10:35 PM
Karena kalo Pake PHP biasa, harus menggunakan ODBC..!
Hospital Management Information System
#34
Posted 17 October 2011 - 12:39 AM
klo ar bisa langsung di gunakan di componen ga???
#36
Posted 17 October 2011 - 09:34 PM
Jadi seperti sebuah penyimpanan sementara di memory komputer yang isinya bisa kita gunakan,
seperti : relasi database, condition, attributes dll.
Jadi usahakan kalau pakai framework harus menggunakan AR ini untuk kondisi2 yang standard.
Kalau susah ya terpaksa dah pakai Query Builder.
Minum kopi dulu ah, secangkirsemangat.com (Yii ...)
#37
Posted 19 November 2012 - 11:31 PM
-=YiieRz=-, on 30 November 2010 - 11:58 PM, said:
AR yang dimaksudkan disini bukanlah AR (Account Receivables) namun (Active Record), jadi menurutku seperti rekaman object gitu kali ya, yang nantinya bisa di pergunakan untuk macam-macam kegunaan. maklum ya kalo salah, karena baru belajar juga neh pren.<!--more-->
untuk menghubungkan antara AR dengan database biasanya menggunakan class [CDbConnection] (Yii DAO)
Contoh :
'class'=>'system.db.CDbConnection', // [CActiveRecord::db]
** catatan : ini berlaku untuk default aplikasi kamu. jadi untuk koneksi beberapa database dalam satu penggunaan, maka harus menggunakan cara lain. Menurut yang saya baca2 bisa menggunakan [CActiveRecord::getDbConnection()].
Btw sebelum jauh saya kasih tau apa itu Yii DAO
Yii DAO adalah Data Access Object, fungsinya untuk mengakses DBMS.
Yii DAO terdiri dari empat kelas utama sebagai berikut:
- [CDbConnection]: mewakili koneksi ke database. - [CDbCommand]: mewakili pernyataan SQL untuk dijalankan pada database. - [CDbDataReader]: mewakili forward-only stream terhadap baris dari set hasil queri. - [CDbTransaction]: mewakili transaksi DB.
Contoh :
$connection=new CDbConnection($dsn,$username,$password); $connection->active=true; // buka koneksi $connection->active=false; // tutup koneksi $sql = "select blablablabaab"; // contoh query sql $command=$connection->createCommand($sql); - [execute()|CDbCommand::execute]: melakukan pernyataan SQL non-queri (Cth: Update, Delete, Insert) - [query()|CDbCommand::query]: melakukan pernyataan SQL yang mengembalikan (Cth: Select) Contoh penggunaan : $rowCount=$command->execute(); // jalankan SQL non-queri $dataReader=$command->query(); // jalankan queri SQL $rows=$command->queryAll(); // queri dan kembalikan seluruh baris hasil $row=$command->queryRow(); // query dan kembalikan baris pertama hasil $column=$command->queryColumn(); // query dan kembalikan kolom pertama hasil $value=$command->queryScalar(); // query dan kembalikan field pertama dalam baris pertama // BACA QUERY / MENGAMBIL HASIL QUERY $dataReader=$command->query(); while(($row=$dataReader->read())!==false) { ... } // memanggil read() secara terus menerus sampai ia mengembalikan false foreach($dataReader as $row) { ... } // menggunakan foreach untuk menelusuri setiap baris data $rows=$dataReader->readAll(); // mengambil seluruh baris sekaligus dalam satu array tunggal
Nah untuk info saja koneksi dari database untuk di rekam dalam AR itu harus dibaca dulu skema data atau metadatanya. ini membutuhkan waktu untuk prosesnya, jika skema data anda cukup besar lebih baik memperbesar caching durationnya. [CDbConnection::schemaCachingDuration].
Contoh :
'schemaCachingDuration'=>3600, // durasi menjadi 3600 detik
AR katanya hanya mendukung DBMS dibawah ini :
- [MySQL 4.1 atau lebih tinggi]
- [PostgreSQL 7.3 atau lebih tinggi]
- [SQLite 2 dan 3]
- [Microsoft SQL Server 2000 atau lebih tinggi]
- [Oracle]
Untuk urusan CRUD (Cread Read Update Delete) Class AR sudah mendukung. Silahkan baca dibawah ini, mudah2an lebih mengerti dari pada baca Tutorial yang bertebaran di inet mengenai yii.
Ada permintaan neh dari agan junxiong untuk dijelaskan juga penggunaan fungsi-fungsi crudnya. aku jelasin sedikit yah, tapi kalo salah mohon dikoreksi, karena ini aku baru belajar jg.
Jadi fungsi save(), saveAttributes(), delete() itu berlaku / dipergunakan setelah data telah dibaca / direkam terlebih dahulu kedalam AR.
sekarang kita bicara yang agak mudah dimengerti dulu. yaitu fungsi save(boolean,array); or save($runValidation,$attributes);
- runValidation itu sendiri jika diberi nilai true maka dia akan secara otomatis akan menjalankan fungsi validate($attributes);
Jika nilai dari attributes benar maka dia akan melakukan pengecekan data terakhir penyimpanan. jika benar data tersebut adalah data terakhir maka akan dijalankan fungsi update($attributes),
sebaliknya jika salah maka akan dijalankan fungsi insert($attributes);
Untuk saveAttributes() seharusnya sudah mengerti dunk kalo fungsi save() bisa dimengerti. ^^
saveAttributes(array); or saveAttributes($attributes); // menyimpan daftar attribute yang dipilih
Contoh :
$post=new Post; $post->title='sample post'; $post->content='content for the sample post'; $dataYgDiSimpan = array('username'=>'YiieRz-sdgBlajar', 'password'=>'belajarYii', 'email'='yiierz-sdgblajar@yiiframework.com', 'createTime'=>time()); $post->saveAttributes($dataYgDisimpan);
attributes diatas dapat diisi dengan array attribute yang kita harapkan
## MEMBACA DATA
## MEMBACA DATA KE AR
// merekam baris sesuai dengan kondisi yang ditetapkan $post=Post::model()->find($condition,$params); // merekam baris sesuai dengan kunci primer yang ditetapkan $post=Post::model()->findByPk($postID,$condition,$params); // merekam baris dengan nilai atribut yang ditetapkan $post=Post::model()->findByAttributes($attributes,$condition,$params); // merekam baris pertama menggunakan pernyataan SQL yang ditetapkan $post=Post::model()->findBySql($sql,$params);
Contoh 1 :
// cari baris dengan postID=10 $post=Post::model()->find('postID=:postID', array(':postID'=>10));</code> Contoh 2: <code>$criteria=new CDbCriteria; $criteria->select='title'; // hanya memilih kolom 'title' $criteria->condition='postID=:postID'; $criteria->params=array(':postID'=>10); $post=Post::model()->find($criteria); // $params tidak diperlukan</code> Contoh 3 : <code>$post=Post::model()->find(array( 'select'=>'title', 'condition'=>'postID=:postID', 'params'=>array(':postID'=>10), ));
## MEMBACA JUMLAH RECORD KE AR
// merekam jumlah baris yang sesuai dengan kondisi yang ditetapkan $n=Post::model()->count($condition,$params); // merekam jumlah baris menggunakan pernyataan SQL yang ditetapkan $n=Post::model()->countBySql($sql,$params); ## MEMBACA PENGECEKAN EXISTS KE AR // merekam apakah ada satu baris yang sesuai denga kondisi yang ditetapkan $exists=Post::model()->exists($condition,$params);
## SIMPAN DATA
## SIMPAN DATA KE AR
// mutakhirkan baris yang sama seperti kondisi yang ditetapkan Post::model()->updateAll($attributes,$condition,$params); // mutakhirkan baris yang sama seperti kondisi dan kunci primer yang ditetapkan Post::model()->updateByPk($pk,$attributes,$condition,$params); // mutakhirkan kolom counter dalam baris yang sesuai dengan kondisi yang ditetapkan Post::model()->updateCounters($counters,$condition,$params);
## SIMPAN DATA KE DB
[save()|CActiveRecord::save]
Contoh :
$post=new Post; $post->title='sample post'; $post->content='content for the sample post'; $post->createTime=time(); $post->save();
## HAPUS DATA
## HAPUS DATA DI AR
// hapus baris yang sesuai dengan kondisi yang ditetapkan Post::model()->deleteAll($condition,$params); // hapus baris yang sesuai dengan kondisi dan kunci primer yang ditetapkan Post::model()->deleteByPk($pk,$condition,$params);
## HAPUS DATA DI DB
Contoh :
[delete()|CActiveRecord::delete] $post=Post::model()->findByPk(10); // menganggap ada tulisan yang memiliki ID = 10 $post->delete(); // hapus baris dari tabel database
## VALIDASI DATA
## VALIDASI DATA DI AR
-- MEMBANDINGKAN REKAMAN AR
[CActiveRecord::equals()] [primaryKey|CActiveRecord::primaryKey]
-- KOSTOMISASI REKAMAN AR
[beforeValidate|CModel::beforeValidate] [afterValidate|CModel::afterValidate] [beforeSave|CActiveRecord::beforeSave] [afterSave|CActiveRecord::afterSave] ?[beforeDelete|CActiveRecord::beforeDelete] [afterDelete|CActiveRecord::afterDelete] [afterConstruct|CActiveRecord::afterConstruct] [afterFind|CActiveRecord::afterFind]
DAH AH SAMPE SINI DULU, NANTI BARU DILANJUTKAN.
Belajar urlManager
Untuk pemula biasanya bingung, kok saya akses website index.php/contact kok bisa ke site/contact. nah ini berarti anda sedang belajar routing web.
untuk route di yii bisa menggunakan urlManager.
urlManager sebetulnya sudah ada tutorialnya, namun kurang pas kalau tidak dibahas secara detail. saya akan coba kupas sedikit mengapa urlManager itu sangat penting diketahui.
saat kita mengakses index.php framework yii akan membaca file config kita contoh config/main.php yang salah satu isinya adalah component urlManager
berikut ini adalah default urlManager dari Yii Framework
'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( '<controller:\w+>/<id:\d+>'=>'<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w>'=>'<controller>/<action>', ), ),
yang harus kita tahu adalah rules / aturan path
\w adalah string
\d adalah numeric
jadi jika ada site.com/webapp/contact
secara otomatis yg akan diproses oleh framework adalah
'<controller:\w+>/<action:\w>'=>'<controller>/<action>',
dia akan mencari pada SiteController.php yang memiliki class actionContact
sudah jelas kan mengenai urlManager
semoga membantu.
gan, kalo boleh tau bagaimana penggunaan commit trans untuk penerapan di AR
#38
Posted 23 November 2012 - 12:09 AM
awik, on 19 November 2012 - 11:31 PM, said:
http://www.yiiframew.../CDbTransaction
Tinggal dilihat apakah database yang dipakai mendukung atau tidak ...