Yii Framework Forum: Реляционная Active Record - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Реляционная Active Record Добавление реляций к существующим моделям Rate Topic: -----

#1 User is offline   dvapelnik 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 7
  • Joined: 11-August 12

Posted 04 November 2012 - 11:20 AM

Существует уже живой проект, который по мере надобности до пиливается.
В самом начале не было использование отношений между таблицами и все делалось вручную.
Сейчас же встал вопрос о том, чтобы сделать отношения между таблицами по-человечески через отношение между моделями.
Когда я создаю две новые таблицы в БД, при этом установив во второй 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 и переписать модели.
Может я что-либо не так делаю?
Заранее благодарен за рекомендации.
0

#2 User is offline   Charger 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 317
  • Joined: 03-September 11

Posted 05 November 2012 - 01:59 AM

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

В вашем примере table2 связана с table1 т.е. в table2 нужно описать отношение BELONG_TO
 public function relations()
    {
        return array(
            'relationName'=>array(self::BELONGS_TO, 'Table1', 't1id'),
        );
    }

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users