Beruflich Dokumente
Kultur Dokumente
23/04/2013
Sabitlabscode
Sampaikanlah walau hanya satu baris script..
GO
HOME
ABOUT ME
POSTS
COMMENTS
PEMROGRAMAN
UNCATEGORIZED
Pengaturan halaman home pada user sebelum dan sesudah login pada yii framework
Farifam.com
Kunjungi Juga Farifam.com untuk tutorial dan forum Yii Framework yang lebih lengkap dan direspon lebih cepat dari di blog ini..
Pada beberapa kasus, terkadang ada masalah dimana kita harus menginput nilai dari 2 buah model/table dalam satu form. Tentu saja hal ini dapat kita lakukan dengan mudah di Yii framework. Berikut cara nya : Pada postingan saya kali ini, saya akan asumsikan kita memiliki 2 buah table di dalam satu database, misal table satu dan table dua. Saya asumsikan nilai Primary key pada table dua adalah sama dengan nilai Primary key pada tabel satu. Dan nama attribute Primary Key nya adalah id. Pertama-tama, kita harus membuat model pada masing-masing tabel yang ingin dimasukkan(tentu hal ini bisa kita lakukan dengan menggunakan gii untuk mempermudah ). Setelah itu akan ada dua buah model, yaitu model Satu dan model Dua. Lalu dengan menggunakan gii, anda buat sebuah code operasi CRUD dengan menggunakan CRUD generator yg ada dalam fitur gii(ingat cukup salah satu CRUD saja, misal CRUD utk model Satu atau CRUD untuk model Dua). Dalam postingan ini saya akan membuat CRUD untuk model Satu. Setelah itu akan terbentuk sebuah controller dari model Satu pada protected/controller, silahkan anda buka controller tersebut. Coba lihat function actionCreate(), anda akan melihat code seperti berikut: $model=new Satu; // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if(isset($_POST['Satu'])) { $model->attributes=$_POST['Satu']; if($model->save()) $this->redirect(array('view','id'=>$model->id)); } $this->render('create',array( 'model'=>$model, )); Nah, silahkan rubah code tersebut menjadi seperti berikut: $model=new Satu; $model2=new Dua; // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if(isset($_POST['Satu'],$_POST['Dua'])) { $model->attributes=$_POST['Satu']; $model2->attributes=$_POST['Dua']; $valid=$model->validate(); $valid=$model2->validate() && $valid; if($valid) { if($model->save(false)) { $model2->duasatu = $model->satusatu; $model2->save(false);
Twit
@desyMnisa @triasenye @peripunyapipi @alnov0511 pengedar kuesioner aku mah.. 1 week ago Grafik Emas Dari tahun 1994 sampai sekarang wp.me/p1yA7b-dr 1 month ago Bisnis Model Amazon.com mulai dari pertama kali Amazon.com berdiri sampai saat ini wp.me/p1yA7b-dq 1 month ago Red ocean VS blue Ocean wp.me/p1yA7b-dn 1 month ago
Komentar
Sabit Huraira on [Yii Framework] Filter Pada CG Sabit Huraira on [Yii Framework] Membuat S kenshi on [Yii Framework] Filter Pada CG nila on [Yii Framework] Membuat S
1/7
http://sabitlabscode.wordpress.com/2011/06/13/2-model-1-form-pada-yii-framework/
23/04/2013
nila on [Yii Framework] Membuat S $this->redirect(array('view','id'=>$model->satusatu)); } } } $this->render('create',array( 'model'=>$model, 'model2'=>$model2, )); Penjelasan: ($model2=new Dua; ) ini maksud ny kita mendeklarasikan sebuah model baru yang kita ambil dari model Dua. Sabit Huraira on [Yii Framework] Membuat Operas Sabit Huraira on [Yii Framework] Membuat Entry Sabit Huraira on Membuat operasi login, logout joen on Membuat operasi login, logout
FREE EBOOK
$valid=$model->validate(); $valid=$model2->validate() && $valid; if($valid) { if($model->save(false)) { $model2->id = $model->id; $model2->save(false); $this->redirect(array('view','id'=>$model->id)); } } Nah, $valid adalah sebuah variabel yang digunakan untuk mengecek apakah nilai yang di input oleh user di dalam form sudah memenuhi syarat dari validasi yang sudah kita tentukan. Sedangkan pernyataan yang ada di dalama if($model->save(false)) berguna untuk melakukan penyamaan nilai Primary Key pada table dua sesuai dengan Primary Key pada table satu. Maksud dari $model2->save(false) adalah nilai dari model tersebut akan disimpan dalam database tanpa melakukan validasi terlebih dahulu, kenapa? karena hal tersebut sudah dilakukan pada $valid. Dan setelah disimpan ke dalam database, aplikasi akan langsung di arahkan ke tampilan view dari data yang sudah di masukkan tadi.. hal itu terlihat dari code $this->redirect(array(view,'id=>$model->id));. Nah, sampai disini kita telah selesai membuat operasi untuk menyimpan data dari dua model yang berbeda, sekarang tinggal kita buat tampilan dari fungsi tersebut Membuat tampilan sendiri tidak bisa sembarangan, kita harus pastikan nilai yang ada pada tampilan harus terhubung ke model yang ada di controller tadi. Okeh, pertama-tama buka views dari operasi create yang ada pada protected/satu/create.php, lalu temukan code seperti beriktu: renderPartial(_form, array(model=>$model)); ?>. Setelah anda temukan, tambahkan sedikit code yang memanggil model Dua, sehingga akan menjadi seperti berikut: <!?php echo $this->renderPartial(_form, array(model=>$model,model2=>$model2)); ?> Nah, model2 yang di tambahkan disana adalah nilai dari model2 yang sudah kita deklarasikan pada controller, sehingga kita bisa menghubungkan form dengan model Dua. Setelah itu, silahkan buka protected/satu/_form.php, di dalam nya mungkin akan tersedia beberapa tag html yang berguna sebagai inputan yang menampung nilai-nilai yang di masukkan user. Hanya saja disana hanya terdapat nilai inputan untuk model Satu saja. Nah, anda dapat menambahkan tag html untuk menampung nilai pada model Dua dengan cara menambahkan tag seperti berikut: <div class="row"> <!--?php echo $form->labelEx($model2,'duadua'); ?> textField($model2,'duadua',array('size'=>30,'maxlength'=>30)); ?> error($model2,'duadua'); ?> </div> Nah, disana anda bisa melihat pada masing-masing tag diberi $model2 yang artinya tag html tersebut dimiliki oleh model Dua. Sedangkan duadua adalah nama dari attribut pada table Dua. Selesai, anda dapat mencoba melakukan operasi Create pada form itu. Selamat mencoba. semoga membantu
About these ads
Blogroll
Blog curhat
Tag
AJAX Apaceh Solr Apache Solr ASP.NET Bukan
Coding C# Dojo dropdownlist ebook Graf LINQ
Lucene mongoDB MVC PDF
PHP RBAC
http://sabitlabscode.wordpress.com/2011/06/13/2-model-1-form-pada-yii-framework/
2/7
23/04/2013
gan saya mau tanya itu model 2 nya kalau kita ingin menambahkan lg isa gak? jadi model 2 nya bisa lebih dari 1, di form tsb.itu bagaimana ya? seperti multimodel form di extension yii,cm saya masih kurang puas krn tidak bisa custumize T.T tq gan
Reply
sabitzhabit says:
June 22, 2011 at 6:12 pm
bisa gan, agan tambahin aja model yang mau agan pake. Dan jangan lupa di view ny juga di edit gan
Reply
tulisceritamu says:
July 30, 2011 at 2:03 pm
gan tahu CTreeView? nah gan ane pengen buat kayak gitu tapi yang ada button di samping textnya misalnya + ROOT [Add child] [Delete Root] nah kayak gini bagaimana ya gan? kemarin gagal buat CTreeView nya. hehee (rin)
Reply
sabitzhabit says:
July 30, 2011 at 2:10 pm
oh, udah pernah buat sistem pakar kek gtu gan.. itu terhubung ke database gan.. nanti ane buat postingan khusus gan.. cz skrg lagi ngerjain skripsi.. mepet mau seminar, hehe.. btw, ni yg id rin di forum ny yii ya? hoho salam kenal gan..
Reply
23/04/2013
wah, sory banget nih.. saya udah lama banget lupa.. sekarang saya lagi sibuk juga mbak, saya kasih clue nya aja ya. mbak jadiin aja nilai2 pada tree nya itu jadi sebuah link yang ngirim parameter id dia sendiri, kemudian parameter itu lah yang di pasang untuk jadi field induk nya.. kalo mau lebih cantik, saat di klik, dia muncul dialog aja.. jadi nanti pake AJAX mbak..
tulisceritamu says:
August 2, 2011 at 3:26 pm
heeee
Reply
angel says:
October 12, 2011 at 12:34 pm
Saya asumsikan nilai Primary key pada table dua adalah sama dengan nilai Primary key pada tabel satu > bukan foreign key???? jadi kalo misal q punya tabel hp n tipe jadi id type masuk jd foreign key di tabel hp nya. tp tabel hp itu jg punya id sendiri. soalna q mau bikin form yang modelnya join 2 tabel kaya gitu. caranya sama ga??? tq
Reply
sabitzhabit says:
October 12, 2011 at 12:48 pm
oh, ga.. yang saya mksd beda kasus. Misal tabel yang hubungannya 1 to 1. Tapi klo mau seperti contoh kasus yang anda paparkan di atas, primary key di tabel 2 menjadi foreign key di tabel 1. Untuk msalah hp dan tipe, baiknya dibuat terpisah antara form input untuk tabel hp dan tabel tipe. Tapi di tabel hp ny ada sebuah dropdownlist yang isinya memilih dari tabel tipe tadi
Reply
angel says:
October 12, 2011 at 12:59 pm
emp4tbelas says:
November 2, 2011 at 1:07 am
gan ane mau nanya nih, kira kira bisa ga ya, satu textField dalam sebuah form, itu di simpen ke dua tabel dalamsatu submit contoh $form->textField($model,name); => disimpan ke tabel A dan tabel B
Reply
sabitzhabit says:
November 2, 2011 at 5:58 am
bisa gan, di atur aja di controllernya misal : $model1=new Tabel1; $model2=new Tabel2; $model1->namaAttribute=$_POST['namatext']; $model2->namaAttribute=$_POST['namatext'];
Reply
http://sabitlabscode.wordpress.com/2011/06/13/2-model-1-form-pada-yii-framework/
4/7
23/04/2013
fachrizal says:
December 22, 2011 at 4:42 pm
wah ini yang ane cari tp masih agak beda, tabel yang saya punya tu 1 ke banyak gan ,,, gmana ya gan ???? mohon solusinya gan ,,, ane tanya di kaskus juga gan ,,, ni linknya gan > http://www.kaskus.us/showthread.php?p=590767087&posted=1#post590767087
Reply
kokoadi says:
March 29, 2012 at 2:44 pm
Saya mau tanya bagaimana caranya bikin edit datanya pada kasus anda dengan pasing parameter dari pk tabelnya? Bagaimana membikin aktif radiobutton dari fieldnya. Trims atas bantuannya.
Reply
mksd ny gan?
Reply
imronimss says:
June 10, 2012 at 7:11 pm
gan mw tanya, kalo kasus ane.. tabel nya : riwayat pendidikan dosen dan riwayat pekerjaan dosen nah ane mw jadiin satu form input, field yang sama dari keduanya adalah id_dosen yang merupakan foreign key ke tabel dosen.. nah gmn cara buat ngesave nya sedangkan primary key dari kedua tabel berbeda
Reply
di save dengan cara biasa aja gan.. primary key buat auto increment aja.. cuma foreign key nya aja yang harus di pastiin sama gan..
Reply
adi says:
July 5, 2012 at 10:13 am
kok coba tutorial di atas yang kluar cuma halaman kosong ya?salah dimananya ya?
Reply
di coba di pelajri dulu gan dari awal.. ini masih dasar soalnya gan..
Reply
23/04/2013
$model2->duasatu = $model->satusatu; $model2->save(false); $this->redirect(array(view,'id=>$model->satusatu)); nah yang duasatu sama satusatu itu nama apanya ?
Reply
udah ngikutin yang di atas ko hasilnya gini ya Fatal error: Call to a member function getErrors() on a non-object in E:\xampp\htdocs\yiimugi\framework\web\helpers\CHtml.php on line 1592
Reply
Ricko says:
August 16, 2012 at 10:39 am
mas, klo otomatis update, datanya masuk kedua tabel tanpa melalui form,.. gimana ya gan?mohon batuan gan..
Reply
asepmylocal says:
December 8, 2012 at 8:26 am
kalo update bermasalah gan get_class() expects parameter 1 to be object, null given
Reply
devan says:
January 28, 2013 at 10:35 pm
Om code saya gini public function actionCreate() { $model=new transaksi; $model2=new Customer; if(isset($_POST['transaksi'],$_Post['Customer'])) { $model->attributes=$_POST['transaksi']; $model2->attributes=$_POST['Customer']; $valid=$model->validate(); $valid=$model2->validate() && $valid; if($valid)
http://sabitlabscode.wordpress.com/2011/06/13/2-model-1-form-pada-yii-framework/
6/7
23/04/2013
{ if($model->save()) { $model2->Customer= $model->transaksi; $model2->save(); $this->redirect(array(view,'id=>$model->No_Order)); } } } $this->render(create,array( model=>$model, model2=>$model2, )); } tp ga kesimpe k database nya malah rendering di form za jd blank truz errorSummary nya jg jd ga fungsi.. tolong bantuan nya
Reply
@asep : ada fungsi yang agan panggil parameter nya kelebihan/kekurangan. @devan : kemungkinan dia ga lolos saat pengkodisian if(isset($_POST['transaksi'],$_Post['Customer'])) kyak nya transaksi itu t nya pake huruf besar mngkin..
Reply
Leave a Reply
Enter your comment here...
Blog at WordPress.com.
http://sabitlabscode.wordpress.com/2011/06/13/2-model-1-form-pada-yii-framework/
7/7