rendered paste bodyclass User extends Doctrine_Record
{
public function setTableDefinition()
{
$this->setTableName( 'users' );
$this->hasColumn( 'fname', 'string', 255, array( 'notnull' => true ) );
$this->hasColumn( 'lname', 'string', 255, array( 'notnull' => true ) );
$this->option( 'engine', 'InnoDB' );
$this->option( 'charset', 'latin1' );
}
public function setUp()
{
$this->ownsMany( 'EmailAddress', 'EmailAddress.user_id' );
}
}
class UserTable extends Doctrine_Table
{
public function getQueryFindAllWithEmailAddresses()
{
return Doctrine_Query::create()->from( 'User u' )
->leftJoin( 'u.EmailAddress' );
}
public function findAllWithEmailAddresses()
{
return $this->getQueryFindAllWithEmailAddresses()->execute();
}
}
class EmailAddress extends Doctrine_Record
{
public function setTableDefinition()
{
$this->setTableName( 'email_addresses' );
$this->hasColumn( 'user_id', 'integer', 11, array( 'notnull' => true ) );
$this->hasColumn( 'email_address', 'string', 255, array( 'notnull' => true ) );
$this->option( 'engine', 'InnoDB' );
$this->option( 'charset', 'latin1' );
}
public function setUp()
{
$this->hasOne( 'User', 'EmailAddress.user_id', 'id' );
}
}
class EmailAddressTable extends Doctrine_Table
{
public function getQueryFindAllWithUsers()
{
return Doctrine_Query::create()->from( 'EmailAddress ea' )
->leftJoin( 'ea.User' );
}
public function findAllWithUsers()
{
return $this->getQueryFindAllWithUsers()->execute();
}
}