Sie sind auf Seite 1von 7

2 model 1 form pada yii framework | Sabitlabscode

23/04/2013

Sabitlabscode
Sampaikanlah walau hanya satu baris script..
GO

HOME

ABOUT ME

FEEDBACK BUKAN CODING

POSTS

COMMENTS

PEMROGRAMAN

UNCATEGORIZED

Pemecahan masalah PK tipe string pada yii

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..

2 model 1 form pada yii framework


JUNE 13, 2011 BY SABIT HURAIRA 30 COMMENTS

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);

Do You Need An Application??


Anda butuh orang untuk membuat aplikasi yg anda inginkan? Atau butuh traineer untuk training / kursus Yii Framework Area Palembang? Mungkin saya bisa bantu.. Just Contact me: sabitzhabit@yahoo.com sabitzhabit@gmail.com

Facebook

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/

2 model 1 form pada yii framework | Sabitlabscode

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

Top Posts & Pages


Free Ebook Yii Framework Indonesia Membuat operasi login, logout dan register pada yii [Yii Framework] Membuat Operasi CRUD dengan Ajax Request dan Tampilan Dialog [Yii Framework] Membuat CGridView Sort dan Filter dari Model yang Berelasi [Yii framework] Cara Upload File

Tag
AJAX Apaceh Solr Apache Solr ASP.NET Bukan
Coding C# Dojo dropdownlist ebook Graf LINQ
Lucene mongoDB MVC PDF

PHP RBAC

REST Search Engine Struktur Data Web

Service WP7 XML yii ZedGraph

http://sabitlabscode.wordpress.com/2011/06/13/2-model-1-form-pada-yii-framework/

2/7

2 model 1 form pada yii framework | Sabitlabscode

23/04/2013

Share this: Like this: Loading...

FILED UNDER UNCATEGORIZED

30 Responses to 2 model 1 form pada yii framework


Pingback: [view] 2 model 1 form pada yii framework Sabitlabscode SkyLine says:
June 22, 2011 at 5:42 pm

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

. makasih gan, sebelumnya !

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

Novi Indra says:


August 6, 2012 at 1:38 pm

gmn mas, postingan tentang ini.?? ane tgg


Reply

Sabit Huraira says:


August 7, 2012 at 10:36 am
http://sabitlabscode.wordpress.com/2011/06/13/2-model-1-form-pada-yii-framework/ 3/7

2 model 1 form pada yii framework | Sabitlabscode

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

. salam kenal juga fan!

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

oh. ok. tq tq.


Reply

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

2 model 1 form pada yii framework | Sabitlabscode

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

Sabit Huraira says:


December 23, 2011 at 9:28 pm

silahke gan : http://sabitlabscode.wordpress.com/2011/08/11/yii-framework-membuat-entry-data-one-to-manyrelation-dengan-tabel-dinamis/


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

Sabit Huraira says:


March 30, 2012 at 7:33 am

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

Sabit Huraira says:


June 11, 2012 at 8:48 am

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

Sabit Huraira says:


July 6, 2012 at 8:02 am

di coba di pelajri dulu gan dari awal.. ini masih dasar soalnya gan..
Reply

mugi wiguna says:


August 15, 2012 at 11:38 am

mas sabit mau nanya


http://sabitlabscode.wordpress.com/2011/06/13/2-model-1-form-pada-yii-framework/ 5/7

2 model 1 form pada yii framework | Sabitlabscode

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

Sabit Huraira says:


August 15, 2012 at 11:50 am

itu field/attribute ny mbak..


Reply

mugi wiguna says:


August 15, 2012 at 3:38 pm

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

mugi wiguna says:


August 16, 2012 at 11:53 am

pas buat di update gimana yah ? error nya disini $model=$this->loadModel($id);


Reply

Sabit Huraira says:


August 16, 2012 at 1:17 pm

apa error ny 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

2 model 1 form pada yii framework | Sabitlabscode

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

Sabit Huraira says:


January 30, 2013 at 9:52 pm

@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.

Theme: Enterprise by StudioPress.

http://sabitlabscode.wordpress.com/2011/06/13/2-model-1-form-pada-yii-framework/

7/7

Das könnte Ihnen auch gefallen