2009-11-13 15 views
0

J'ai le schéma YAML suivant pour l'organisation des utilisateurs dans Doctrine:PHP Doctrine - Aide de la syntaxe YAML. Valeur par défaut pour plusieurs à plusieurs relation?

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 

En fait, les gens qui sont les utilisateurs appartiennent à un ou plusieurs groupes.
Est-il possible d'ajouter de nouveaux utilisateurs à un groupe particulier par défaut?

Un conseil apprécié.

Merci

Répondre

0

Je dois admin, que je ne suis pas dans la version la plus récente de la doctrine plus, mais étant donné que ses dossiers ont besoin d'un constructeur par défaut, je pense qu'il devrait être suffisant pour charger le groupe par défaut à partir de la base de données dans le utilisateurs constructeur

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 

en fonction de votre architecture, vous voudrez peut-être envisager de mettre cette initialisation dans votre contrôleur, aussi.