0

我有以下 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 

基本上,任何作为用户的人都将属于一个或多个组。
默认情况下有没有办法将新用户添加到特定组?

任何建议表示赞赏。

谢谢

4

1 回答 1

0

我必须管理员,我不再使用最新的 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

根据您的架构,您可能还需要考虑将该初始化放入您的控制器中。

于 2009-11-13T21:01:17.373 回答