Валидация При Использовании Вложенных Форм

Добрый день!

С yii только знакомлюсь, не серчайте, если что не так)

Создаю вложенную форму, связанную с 2-мя моделями.


$form = new CForm('application.modules.admin.views.clients.create');

        $form['clients']->model = new Test;

        $form['clientsData']->model = new Test1;

        if($form->submitted('create'))

        {

            $clients = $form['clients']->model;

            $clientsData = $form['clientsData']->model;

            if($clients->save(false))

            {

                $clientsData->us_id = $clients->id;

                $clientsData->save(false);

                $this->redirect(array('site/index'));

            }

        }

        else 

            {

                 $this->render('create_view', array('form'=>$form));


            }

если писать так - валидация не работает, т.к.


save(false)

но в бд сохраняет

если вместо условия


if($form->submitted('create'))

написать


if($form->submitted('create') && $form->validate())

условие не выполняется

Как так?

Заранее спасибо!

Похоже какая-то из моделей не проходит валидацию, и дело даже не во вложенных формах.

Т.е. можно сохранить модель совсем без валидации:


$clients->save(false)

можно с валидацией:


$clients->save()

а можно сначала проверить модель а потом сохранять без повторной валидации, т.к. save производит validate если false не указан в качестве параметра:




// если данные формы пришли, то проверяем их

if($form->submitted('create') && form->validate()) {

// если модель прошла валидацию, то второй раз валидацию производить не будем, т.к. мы проверили модель ранее:

 $form->model->save(false);

}



нашел решение!

в правилах валидации убрал обязательное поле с id.

его получали из другой модели


$clientsData->us_id = $clients->id