1
0
mirror of synced 2024-12-05 03:06:05 +03:00

relation alias bug fixed

This commit is contained in:
doctrine 2006-05-15 19:17:42 +00:00
parent 7778d2b032
commit 03d1049015
2 changed files with 51 additions and 9 deletions

View File

@ -6,15 +6,33 @@ class Sensei_User extends Doctrine_Record { }
//class Sensei_Customer extends Sensei_User { }
class Sensei_Entity extends Doctrine_Record {
/**
* setTableDefinition
* initializes column definitions
*
* @return void
*/
public function setTableDefinition() {
$this->hasColumn("loginname","string",32,"unique");
$this->hasColumn("password","string",32);
}
}
class Sensei_Variable extends Doctrine_Record {
/**
* setUp
* initializes relations and options
*
* @return void
*/
public function setUp() {
//$this->setAttribute(Doctrine::ATTR_COLL_KEY, "name");
}
/**
* setTableDefinition
* initializes column definitions
*
* @return void
*/
public function setTableDefinition() {
$this->hasColumn("name","string",50,"unique");
$this->hasColumn("value","string",10000);
@ -22,10 +40,22 @@ class Sensei_Variable extends Doctrine_Record {
}
}
class Sensei_Session extends Doctrine_Record {
/**
* setUp
* initializes relations and options
*
* @return void
*/
public function setUp() {
$this->ownsMany("Sensei_variable","Sensei_variable.session_id");
$this->hasOne("Sensei_entity","Sensei_session.entity_id");
}
/**
* setTableDefinition
* initializes column definitions
*
* @return void
*/
public function setTableDefinition() {
$this->hasColumn("session_id","string",32);
$this->hasColumn("logged_in","integer",1);
@ -141,6 +171,10 @@ class Sensei extends Doctrine_Access {
}
return false;
}
/**
* @param integer $attr
* @param mixed $value
*/
public function setAttribute($attr, $value) {
switch($attr):
case Sensei::ATTR_LIFESPAN:
@ -152,9 +186,15 @@ class Sensei extends Doctrine_Access {
$this->attributes[$attr] = $value;
}
/**
* @return boolean
*/
private function open($save_path,$session_name) {
return true;
}
/**
* @return boolean
*/
public function close() {
return true;
}

View File

@ -351,7 +351,15 @@ class Doctrine_Table extends Doctrine_Configurable {
if(isset($this->relations[$name]))
throw new InvalidKeyException();
$this->bound[$name] = array($field,$type,$localKey);
$e = explode(" as ",$name);
$name = $e[0];
if(isset($e[1]))
$alias = $e[1];
else
$alias = $name;
$this->bound[$alias] = array($field,$type,$localKey,$name);
}
/**
* getComponentName
@ -387,14 +395,8 @@ class Doctrine_Table extends Doctrine_Configurable {
$e = explode(".",$this->bound[$name][0]);
$component = $e[0];
$foreign = $e[1];
$e = explode(" as ",$name);
$name = $e[0];
if(isset($e[1]))
$alias = $e[1];
else
$alias = $name;
$alias = $name;
$name = $this->bound[$alias][3];
$table = $this->session->getTable($name);