PHP Doctrine - YAML syntax help. Default value for many to many relationship?
I have the following YAML schema for organising users in 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
Basically, any people who are users will belong to one or more groups.
Is there any way to add new users to a particular group by default?Any advice appreciated.
Thanks
I must admin, that I'm not in the most recent Doctrine version anymore, but since its records need a default constructor I think it should be sufficient to load the default group from the database in the users constructor
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
Depending on your architecture you might want to consider to put that initialisation into your controller, too.
精彩评论