1
0
mirror of synced 2024-12-14 07:06:04 +03:00

Make the new hasOne stuff work with identifiers

This commit is contained in:
njero 2007-08-10 07:07:53 +00:00
parent 17787aa173
commit a903c927c4
2 changed files with 10 additions and 6 deletions

View File

@ -883,7 +883,11 @@ abstract class Doctrine_Record extends Doctrine_Record_Abstract implements Count
throw new Doctrine_Record_Exception("Couldn't call Doctrine::set(), second argument should be an instance of Doctrine_Record or Doctrine_Null when setting one-to-one references.");
}
if ($rel instanceof Doctrine_Relation_LocalKey) {
$this->set($rel->getLocal(), $value->rawGet($rel->getForeign()), false);
$foreign = $rel->getForeign();
if (!empty($foreign) && $foreign != $value->getTable()->getIdentifier())
$this->set($rel->getLocal(), $value->rawGet($foreign), false);
else
$this->set($rel->getLocal(), $value, false);
} else {
$value->set($rel->getForeign(), $this, false);
}

View File

@ -56,7 +56,7 @@ class Doctrine_Relation_LocalKey extends Doctrine_Relation
->query($dql, array($id))
->getFirst();
if ( ! $related) {
if ( ! $related || empty($related)) {
$related = $this->getTable()->create();
}
}