Доктрина PHP: как установить дополнительные столбцы refClass? - PullRequest
5 голосов
/ 03 февраля 2011

У меня есть следующая схема

User:
  columns:
      id:
           type: integer
           primary: true
      name: string
  relations:
     UserGroup:
      local: userGroup_id
      foreign: id
      refClass: User2Group

UserGroup:
  columns:
      id:
           type: integer
           primary: true
      name: string
  relations:
     User:
      local: user_id
      foreign: id
      refClass: User2Group

User2Group:
    columns:
        user_id:
           type: integer
           primary: true
        userGroup_id:
            type: integer
            primary: true
        extraColumn: string

и я пытаюсь сделать

$user=new Model_User();
        $user->name='user';

        $user->UserGroup[0]->name='group';
        $user->UserGroup[0]->extraColumn='test';

        $user->save();

но это выдает мне исключение "Doctrine_Record_UnknownPropertyException" с сообщением "Неизвестное свойство записи / связанный компонент" extraColumn "в" UserGroup "", что я делаю неправильно? (Я, кстати, пытался изменить местный / иностранный на что-то еще, это все равно не будет работать)

1 Ответ

3 голосов
/ 05 февраля 2011

Doctrine не поддерживает дополнительные столбцы в таблице соединений.Но вы можете получить доступ и обновить значения, используя Doctrine_Query.

  Doctrine_Query::create()
    ->update('User2Group')
    ->set('extraColumn', 'Dude its working')
    ->where('user_id = ?', $user['id'])
    ->andWhere('userGroup_id = ?', $userGroup['id'])
    ->execute();

Чтобы получить это значение, вам нужно выполнить запрос на выборку.

...