PHP Doctrine - справка по синтаксису YAML. Значение по умолчанию для отношения многих ко многим? - PullRequest
0 голосов
/ 13 ноября 2009

У меня есть следующая схема YAML для организации пользователей в Doctrine:

Person:
  tableName: people
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true 
    firstname:
      type: string
      notnull: true
      lastname:
      type: string
      notnull: true
User:
  inheritance:
  extends: Person
    type: column_aggregation
    keyField: type
    keyValue: 1
Userdetails:
  columns:
    person_id:
      type: integer
      primary: true
    password:
      type: string
      notnull: true
  relations:
    User:
      foreignType: one
      local: person_id
      onDelete: CASCADE
      onUpdate: CASCADE
Group:
  tableName: groups
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    name:
      type: string
      notnull: true
UserGroup:
  columns:
    group_id:
      type: integer
      primary: true
      person_id:
      type: integer
      primary: true
  relations:
    User:
      foreignType: many
      local: person_id
    Group:
      foreignType: many 

По сути, любые пользователи, которые являются пользователями, будут принадлежать к одной или нескольким группам.
Есть ли способ добавить новых пользователей в определенную группу по умолчанию?

Любой совет приветствуется.

Спасибо

1 Ответ

0 голосов
/ 14 ноября 2009

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

class User extends Doctrine_Record
{
    public __construct()
    {
        parent::__construct();
        $this->groups[] = Doctrine::getTable('Group')->findByName('DefaultGroup');
    }
}

$blauser = new User();
$blauser->save(); // Will save the user with the default group

В зависимости от вашей архитектуры, возможно, вы захотите включить эту инициализацию и в свой контроллер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...