Учение Много ко Многим - PullRequest
       24

Учение Много ко Многим

3 голосов
/ 20 апреля 2010

У меня вопрос по Doctrine ORM M: M. Я построил несколько таблиц, как это: -User + идентификатор + имя -Group + идентификатор + Имя

Я хочу связать эти таблицы с помощью новой таблицы с помощью Doctrine: В групповом классе:

$this->hasMany('User as Users', array(
            // I'm wondering what I can fill here
            'refClass' => 'UserGroup'
        ));

и в классе User:

 $this->hasMany('Group as Groups', array(
                // I'm wondering what I can fill here
                'refClass' => 'UserGroup'
            ));

Пожалуйста, помогите мне заполнить бланк. Благодарю. С нетерпением жду вашего скорого ответа.

P / S: Извините за мой английский

Ответы [ 2 ]

1 голос
/ 20 апреля 2010

Для этого есть хорошая документация по адресу http://www.doctrine -project.org / Documentation / manual / 1_2 / ru / defining-models # отношения: объединение таблиц-ассоциаций: многие ко многим обслуживание именно вашей модели.

В основном этот код в классе таблицы User:

$this->hasMany('Group as Groups', array(
                'local' => 'user_id',
                'foreign' => 'group_id',
                'refClass' => 'UserGroup'
            )
        );

указывает, что таблица Group связана через таблицу пересечений UserGroup. Столбец «user_id» в UserGroup - это ключ, соответствующий локальной таблице (User), а «group_id» - это ключ, соответствующий внешней таблице (Group).

Аналогичное утверждение в классе таблицы Group обеспечивает обратное:

$this->hasMany('User', array(
                'foreign' => 'user_id',
                'local' => 'group_id',
                'refClass' => 'UserGroup'
            )
        );
0 голосов
/ 20 апреля 2010

Группа:

$this->hasMany('User as Users', array(
  'refClass' => 'UserGroup',
  'local' => 'group_id',
  'foreign' => 'user_id');

Пользователь:

$this->hasMany('Group as Groups', array(
  'refClass' => 'UserGroup',
  'local' => 'user_id',
  'foreign' => 'group_id');
...