I am trying to use multimodelform extension to save one-to-many record set but it does not save records in both tables. The reason is, it was unable to validate "member" records. If I remove validation check, it saves the group (master) record without child records. Could some one give me a tip to solve this issue.
this is my actionCreate()
public function actionCreate()
{
Yii::import('ext.multimodelform.MultiModelForm');
$model = new TblCalculation;
$member = new TblClaim;
$validatedMembers = array(); //ensure an empty array
if(isset($_POST['TblCalculation']))
{
$model->attributes=$_POST['TblCalculation'];
if( //validate detail before saving the master
MultiModelForm::validate($member,$validatedMembers,$deleteItems) && $model->save()) {
//the value for the foreign key 'groupid'
$masterValues = array ('calID'=>$model->id);
if (MultiModelForm::save($member,$validatedMembers,$deleteMembers,$masterValues))
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render(‘create’,array(…
This is my view (../tblCalculation/_form.php)
…
…
$memberFormConfig = array(
'elements'=>array(
'reason'=>array('type'=>'text','size'=>10,'maxlength'=>40,),
'timeDeparture'=>array('type'=>'text','size'=>16,'maxlength'=>20,),
'timeArrival'=>array('type'=>'text','size'=>16,'maxlength'=>20,),
'travelFrom'=>array('type'=>'text','size'=>10, 'maxlength'=>40,),
'travelTo'=>array('type'=>'text','size'=>10, 'maxlength'=>40,),
'distance'=>array('type'=>'text','size'=>10, 'maxlength'=>10,),
'comment'=>array('type'=>'text','size'=>10, 'maxlength'=>30,),
));
$this->widget(‘ext.multimodelform.MultiModelForm’,array(
'tableView'=> true,
'id' => 'id_member', //the unique widget id
'formConfig' => $memberFormConfig, //the form configuration array
'model' => $member, //instance of the form model
//if submitted not empty from the controller,
//the form will be rendered with validation errors
'validatedItems' => $validatedMembers,
//array of member instances loaded from db
'data' => $member->findAll('calID=:id', array(':id'=>$model->id)),
));
?>