FooRecord.php 2 KB
Newer Older
1 2 3
<?php
class FooRecord extends Doctrine_Record
{
4
    public static function initMetadata($class)
5
    {
6 7 8 9
        $class->setTableName('foo');
        $class->setColumn('name', 'string', 200, array('notnull' => true));
        $class->setColumn('parent_id', 'integer');
        $class->setColumn('local_foo', 'integer');
10
        
11
        $class->hasMany('FooRecord as FooFriend', array('local'    => 'foo1',
12 13 14 15 16
                                                       'foreign'  => 'foo2',
                                                       'equal'    => true,
                                                       'refClass' => 'FooReferenceRecord',
                                                       ));

17
        $class->hasMany('FooRecord as FooParents', array('local'    => 'foo1',
18 19 20 21 22
                                                        'foreign'  => 'foo2',
                                                        'refClass' => 'FooReferenceRecord',
                                                        'onDelete' => 'RESTRICT',
                                                        ));

23
        $class->hasMany('FooRecord as FooChildren', array('local'    => 'foo2',
24 25 26 27
                                                         'foreign'  => 'foo1',
                                                         'refClass' => 'FooReferenceRecord',
                                                         ));

28
        $class->hasMany('FooRecord as Children', array('local' => 'id', 'foreign' => 'parent_id'));
29

30 31
        $class->hasOne('FooRecord as Parent', array('local' => 'parent_id', 'foreign' => 'id', 'onDelete' => 'CASCADE'));
        $class->hasOne('FooLocallyOwned', array('local' => 'local_foo', 'onDelete' => 'RESTRICT'));
32
        
33
        $class->hasMany('BarRecord as Bar', array('local' => 'fooId',
34 35 36 37 38
                                                 'foreign' => 'barId',
                                                 'refClass' => 'FooBarRecord',
                                                 'onUpdate' => 'RESTRICT'));
    }
}