Commit 753e9bd4 authored by zYne's avatar zYne

Fixes #131

Ticket: 131
parent ddf0ceab
......@@ -96,7 +96,7 @@ class Doctrine_Collection extends Doctrine_Access implements Countable, Iterator
* getTable
* returns the table this collection belongs to
*
* @return object Doctrine_Table
* @return Doctrine_Table
*/
public function getTable() {
return $this->table;
......
......@@ -417,7 +417,7 @@ abstract class Doctrine_Hydrate extends Doctrine_Access {
if($fk instanceof Doctrine_LocalKey)
$last->set($fk->getLocal(), $record->getIncremented(), false);
$last->initSingleReference($record, $fk);
$last->set($fk->getAlias(), $record);
$prev[$name] = $record;
break;
......@@ -428,6 +428,8 @@ abstract class Doctrine_Hydrate extends Doctrine_Access {
if( ! $last->hasReference($alias)) {
$prev[$name] = $this->getCollection($name);
$last->initReference($prev[$name], $fk);
//$last->set($fk->getAlias(), $this->getCollection($name));
} else {
// previous entry found from identityMap
$prev[$name] = $last->get($alias);
......
......@@ -741,6 +741,8 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
} catch(Doctrine_Table_Exception $e) {
throw new Doctrine_Record_Exception("Unknown property / related component '$name'.");
}
// one-to-many or one-to-one relation
if($rel instanceof Doctrine_ForeignKey ||
$rel instanceof Doctrine_LocalKey) {
......@@ -760,7 +762,7 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
throw new Doctrine_Record_Exception("Couldn't call Doctrine::set(), second argument should be an instance of Doctrine_Record when setting one-to-one references.");
if($rel->getLocal() == $this->table->getIdentifier()) {
$this->references[$name]->set($rel->getForeign(),$this);
$value->set($rel->getForeign(), $this, false);
} else {
$this->set($rel->getLocal(),$value);
}
......@@ -1151,18 +1153,6 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
throw new Doctrine_Record_Exception("Unknown reference $name");
}
/**
* initalizes a one-to-one relation
*
* @param Doctrine_Record $record
* @param Doctrine_Relation $connector
* @return void
*/
public function initSingleReference(Doctrine_Record $record, Doctrine_Relation $connector) {
$alias = $connector->getAlias();
$this->references[$alias] = $record;
}
/**
* initalizes a one-to-many / many-to-many relation
*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment