Toto uz tak funguje, relation je dokonca definovana aj v modeli.
Kód: Vybrať všetko
'WOSJournalUpdate' => array(self::HAS_MANY, 'WOSJournalUpdate', 'woid'),
Momentalne sa mi podarilo dosiahnut, aby sa vytvarali nove zaznamy vo WOSJournalUpdate tabulke pri vytvoreni zaznamu vo Workorder tabulke (povodne nazvy v prvom poste boli TicketJournalUpdate a Ticket - len aby nedoslo k zmateniu).
Dosiahol som to pridanim par riadkov do actionCreate v controlleri:
Kód: Vybrať všetko
public function actionCreate()
{
$model=new Workorder;
$wos_journal_update=new WOSJournalUpdate;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Workorder'], $_POST['WOSJournalUpdate']))
{
$model->attributes=$_POST['Workorder'];
$wos_journal_update->attributes=$_POST['WOSJournalUpdate'];
$valid=$model->validate();
if($valid)
{
if($model->save(false))
{
$wos_journal_update->woid = $model->woid;
if($wos_journal_update->save())
{
$this->redirect(array('view','id'=>$model->woid));
}
}
}
}
$this->render('create',array(
'model'=>$model,
'wos_journal_update'=>$wos_journal_update,
));
}
a par riadkov do create.php, aby vedel, ako renderovat a ktoremu modelu posielat data:
Kód: Vybrať všetko
<?php echo $this->renderPartial('_form', array('model'=>$model, 'wos_journal_update'=>$wos_journal_update)); ?>
($model je pseudonym pre workorder/ticket, aby som nemusel prepisovat vsetky views).
Nasledne uz to ide bez problemov, az na to, ze aj ked viem vytvorit zaznam, neviem ho nasledne upravit, kedze actionUpdate v controlleri je definovane takto:
Kód: Vybrať všetko
public function actionUpdate($id)
{
$model=$this->loadModel($id);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Workorder']))
{
$model->attributes=$_POST['Workorder'];
if($model->save())
$this->redirect(array('view','id'=>$model->woid));
}
$this->render('update',array(
'model'=>$model,
));
}
a Yii nepozna premennu $wos_journal_update