1
0
mirror of synced 2024-12-13 06:46:03 +03:00
doctrine2/models/Entity.php

30 lines
1.3 KiB
PHP

<?php
class Entity extends Doctrine_Record
{
public static function initMetadata($class)
{
$class->setColumn('id', 'integer',20, array('autoincrement' => true, 'primary' => true));
$class->setColumn('name', 'string',50);
$class->setColumn('loginname', 'string',20, array('unique' => true));
$class->setColumn('password', 'string',16);
$class->setColumn('type', 'integer');
$class->setColumn('created', 'integer',11);
$class->setColumn('updated', 'integer',11);
$class->setColumn('email_id', 'integer');
$class->setSubclasses(array('Group', 'User'));
$class->setInheritanceType(Doctrine::INHERITANCETYPE_SINGLE_TABLE, array(
'discriminatorColumn' => 'type',
'discriminatorMap' => array(0 => 'User', 1 => 'Group', 2 => 'Entity')
));
$class->hasOne('Email', array('local' => 'email_id'));
$class->hasMany('Phonenumber', array('local' => 'id', 'foreign' => 'entity_id'));
$class->hasOne('Account', array('foreign' => 'entity_id'));
$class->hasMany('Entity', array('local' => 'entity1',
'refClass' => 'EntityReference',
'foreign' => 'entity2',
'equal' => true));
}
}