Я не
используя формат YAML для Doctrine,
занятия сделаны вручную.
класс Пользователь расширяет sfDoctrineRecord
{
public function setTableDefinition()
{
$this->setTableName('user');
$this->hasColumn('id', 'integer', 5, array(
'type' => 'integer',
'primary' => true,
'unsigned' => true,
'autoincrement' => true,
'length' => 5,
));
$this->hasColumn('fbid', 'string', 40, array(
'type' => 'string',
'length' => 40,
#'notnull' => true,
#'unique' => true,
));
}
public function setUp()
{
parent::setUp();
$this->hasOne('Country', array(
'local' => 'user_id',
'foreign' => 'country_id',
'refClass' => 'CountryUser'
));
$timestampable0 = new Doctrine_Template_Timestampable(array(
));
$this->actAs($timestampable0);
}
}
класс Страна расширяет sfDoctrineRecord
{
публичная функция setTableDefinition ()
{
$ This-> setTableName ( 'страна');
$this->hasColumn('id', 'integer', 5, array(
'type' => 'integer',
'primary' => true,
'unsigned' => true,
'autoincrement' => true,
'length' => 5,
));
$this->hasColumn('name', 'string', 10, array(
'type' => 'string',
'length' => 10,
'unique' => true,
#'notnull' => true,
));
}
public function setUp()
{
parent::setUp();
$this->hasMany('User as Users', array(
'local' => 'country_id',
'foreign' => 'user_id',
'refClass' => 'CountryUser'
));
$timestampable0 = new Doctrine_Template_Timestampable(array(
));
$this->actAs($timestampable0);
}
} * * тысяча двадцать-один
класс CountryUser расширяет sfDoctrineRecord {
открытая функция setTableDefinition () {
$this->setTableName('country_user');
$this->hasColumn('user_id', 'integer', 5, array(
'notnull' => true,
'unsigned' => true,
'length' => 5,
'type' => 'integer',
'primary' => true,
));
$this->hasColumn('country_id', 'integer', 5, array(
'type' => 'integer',
'notnull' => true,
'unsigned' => true,
'length' => 5,
'primary' => true,
));
}
}