Есть кусок кода.
Код: Выделить всё
if(isset($_POST['Docs']))
{
$transaction = Yii::app()->db->beginTransaction();
try
{
$a = $this->saveA();
$b = $this->saveB($a->id);
$transaction->commit();
}
catch(SaveException $e)
{
$transaction->rollBack();
}
}
$this->render('edit',array(
'a' => $a,
'b' => $b
));
Код: Выделить всё
if(isset($_POST['B']))
{
$limits->attributes = $_POST['B'];
if(!$limits->saveArchive())
throw new SaveException();
return $limits;
}
return false;
Все работает, но ошибки валдиации не получаеться отобразить, потому что модель с ошибками не возвращаеться, так как кинуто исключение.
Нужно передать както модель или отдельно ошибки.
Есть вариант присвоить их члену класа, и проверять есть ли они, но методов save* много и не красиво ето смотриться
Есть у когото варианты?
Еще очень важно: метод возвращает ид сохраненного елемента и он используеться при сохранении второго
Код: Выделить всё
$a = $this->saveA();
$b = $this->saveB($a->id);
Код: Выделить всё
try
{
$result = array();
foreach($this->models as $key => $item)
{
if($item->save())
throw new SaveException();
}
}