Редактирование реляционной AR

Вот у меня есть 2 таблицы: lists и texts

Создана модель на базе lists:




class Lists extends CActiveRecord

{

	public function tableName()

	{

		return 'lists';

	}


	public function primaryKey()

	{

	    return 'id';

	}




	public function relations()

    {

        return array(

            'text'=>array(self::BELONGS_TO, 'texts', 'object_id'),

        );

    }

Далее генерирую GridView:




$this->widget('zii.widgets.grid.CGridView', array(

    'id' => 'admact',

    'dataProvider'=>$lists_model->search(),

	'columns'=>array(

        'date_begin',

        'date_end',

        'text.header',

        'rate',

        'position',

        array('class'=>'CActiveButtonColumn',

		'template'=>'{update} {delete}',),

        ),

    )

 );



И этот Грид с такими вот "составными" атрибутами, ссылающимися на другие связанные AR - нормально работает.

Далее, я по наивности, пытаюсь создать таким же манером форму.

я пишу:




echo $form->TextArea($this->model, 'text.header',array('style'=>'width: 250px;'));



Но мне система говорит:

Вопрос: а как мне вообще редактировать связанные ActiveRecord ? Неужели, по отдельности, создавать экземпляр каждой модели, редактиировать отдельно, а потом связывать уже в контроллере, вручную через сгенерированные Pk ?

Хорошо, а нет ли встроенного во фреймворк способа создать ActiveRecord и тут же получить все "вложенные" ActiveRecord-ы, поскольку имеется запись о них в методе relations ?

То есть, я подразумеваю:





$this->model = new Lists; // получили главную AR


echo $form->TextArea($this->model-> <тут что еще> ->text, 'header',array('style'=>'width: 250px;'));

                                         //   обратились к автоматически созданной AR по записи в relations



И аналогично для метода FindByPk хотелось бы.

И вообщем то это я и сам уже написать смогу, но

  1. Вдруг уже есть, да я не вижу

  2. Хотелось бы чтобы встроенно было, а иначе реляционная ActiveRecord какая-то неполная получается.

Получить способ есть и описан в гайде. А вот записать подобно получению способа нет (точнее, он есть в расширениях).

А не могли бы носом ткнуть? И по первому пункту и по второму.

  1. http://yiiframework.ru/doc/guide/ru/database.arr

  2. Что-то вроде:

http://www.yiiframework.com/extension/save-relations-ar-behavior

http://www.yiiframework.com/extension/cadvancedarbehavior