Реляционная Active Record

Существует уже живой проект, который по мере надобности до пиливается.

В самом начале не было использование отношений между таблицами и все делалось вручную.

Сейчас же встал вопрос о том, чтобы сделать отношения между таблицами по-человечески через отношение между моделями.

Когда я создаю две новые таблицы в БД, при этом установив во второй fk то при генерации с помощью Gii всё хорошо генерируется со всеми отношениями (как первая так и вторая модель).

Если же создать таблицы и потом добавить fk, то Gii не подхватывает отношения между таблицами.

Аналогично не могу разобраться в механизме отношения между моделями после установки fk вручную:


ALTER TABLE `mydb`.`table2` 


  ADD CONSTRAINT `t1id`


  FOREIGN KEY (`t1id` )


  REFERENCES `mydb`.`table1` (`id` )


  ON DELETE NO ACTION


  ON UPDATE NO ACTION


, ADD INDEX `t1id_idx` (`t1id` ASC) ;

В итоге нужно на существующие таблицы навесить fk и переписать модели.

Может я что-либо не так делаю?

Заранее благодарен за рекомендации.

Отношения между моделями несложно устанавливать вручную. Все хорошо описано в учебнике: Реляционная Active Record

В вашем примере table2 связана с table1 т.е. в table2 нужно описать отношение BELONG_TO


 public function relations()

    {

        return array(

            'relationName'=>array(self::BELONGS_TO, 'Table1', 't1id'),

        );

    }