[ASK] Form Input dari Multiple Model

Alo master, mau tanya tentang yii.

ane mau bikin form biodata dimana form itu ada aktivitas saat ini.

jenis aktivitas,keterangan aktivitas dan biodata merupakan model/table yang berbeda,

gimana ya, cara menyimpan aktivitas dalam mengisi satu form create?

ane udah nyoba pake cara ini

coding di biodatacontroller smentara di die buat ngetest.


        public function actionCreate()

        {

                $model=new Biodata;


               $model2=new AktifitasAlumni;


          

         

                if(isset($_POST['Biodata']) && isset($_POST['AktifitasAlumni']))

                {

                        $model->attributes=$_POST['Biodata'];

                        $model2->attributes=$_POST['AktifitasAlumni'];

                        die($model2->ket);

                        

                        foreach( $model2->idaktifitas as $xx)

                        {

                                $xxx = $xx;

                        }

                        die ($xxx);


   

                        $this->redirect(array('views','id'=>$model->idbiodata));

                }


                $this->render('add',array(

                        'model'=>$model,

                        'model2'=>$model2,

                ));


        }






di viewnya _form.php


        <tr>

                <td valign="top">

                        <?php echo $form->labelEx($model,'idaktifitas'); ?>

                </td>

                <td> : </td>

                <td>

                <?php

                        $aktivitas=Aktifitas::model()->findAll();

                        foreach ($aktivitas as $x)

                        {

                                echo $form->checkBox($model2,'idaktifitas');

                                echo $form->label($model2,$x->nama);

                                echo $form->textField($model2, 'ket');

                                echo '<br />';

//                              $x->nama;

                        }

                        //echo CHtml::activeCheckboxList($model2, 'idaktifitas', CHtml::listData($aktivitas, 'idaktifitas', 'nama'),array('template'=>'<p>{input}{label}</p>',));

                //      echo $form->textField($model2,'idaktifitas');

                        

 ?>


                        <?php echo $form->error($model2,'idaktifitas'); ?>

                </td>

        </tr>



help me …

:)

cek dulu yg ini gan, siapa tau berkenan

http://www.yiiframework.com/forum/index.php?/topic/11431-multiple-models-in-a-single-form/page__p__56105__hl__multiple+model+form+input

gan kayaknya banyak topic tentang ini sebelumnya, coba agan check dulu deh

http://www.yiiframework.com/forum/index.php?/topic/12746-cformmodel-dan-cactiverecord/page__p__62414__hl__cformmodel

http://www.yiiframework.com/forum/index.php?/topic/14215-multiple-model-di-satu-view/page__gopid__7151

udah di coba gan caranya, tp malah muncul error gini

CDbException

Description

[color="#FF0000"]CDbCommand failed to execute the SQL statement: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (alumni2/al_aktifitas_alumni, CONSTRAINT fk_aktifitas_alumni_1 FOREIGN KEY (idaktifitas) REFERENCES al_aktifitas (idaktifitas) ON DELETE NO ACTION ON UPDATE CASCADE)[/color]

Source File

/var/www/html/yii/framework/db/CDbCommand.php(256)

00244: if($this->_connection->enableProfiling)

00245: Yii::endProfile(‘system.db.CDbCommand.execute(’.$this->getText().’)’,‘system.db.CDbCommand.execute’);

00246:

00247: return $n;

00248: }

00249: catch(Exception $e)

00250: {

00251: if($this->_connection->enableProfiling)

00252: Yii::endProfile(‘system.db.CDbCommand.execute(’.$this->getText().’)’,‘system.db.CDbCommand.execute’);

00253: Yii::log('Error in executing SQL: '.$this->getText().$par,CLogger::LEVEL_ERROR,‘system.db.CDbCommand’);

00254: $errorInfo = $e instanceof PDOException ? $e->errorInfo : null;

00255:

[color="#FF00FF"]00256: throw new CDbException(Yii::t(‘yii’,‘CDbCommand failed to execute the SQL statement: {error}’,[/color]

00257: array(’{error}’=>$e->getMessage())),(int)$e->getCode(),$errorInfo);

00258: }

00259: }

bisa gunakan extension AsmSelectex

hasil post nya nanti berupa array, tinggal di insert loop pake foreach




	protected function afterSave()

	{

		parent::afterSave();


		

	   if(empty($_POST['aktivitas']))

           {

	       $aktivitas = explode(",",$this->aktivitas);


                // if($this->isNewRecord == false)  //bisa cek create atau update

                foreach($aktivitas as $value){

					

		    $contact = new Biodata;

		    $contact->ID_Biodata=$this->ID_Biodata;

		    $contact->ID_Keterangan=$idOrganisasi;

		    $contact->save();

				

		}

            }

         }




kira2x seperti itu konsepnya, klo yg pake ajax bisa liat disini

CJuiDialog and AjaxSubmitButton

kalo tablenya innoDB, ( atau foreign key constrain ) berarti agan harus menmperhatikan datamana dulu yang harus di inset, memperhatikan urut-urutan save modelnya,…