1
0
mirror of synced 2025-02-01 04:51:45 +03:00
This commit is contained in:
zYne 2007-06-04 22:38:39 +00:00
parent 63bca659f8
commit 4d0310bfd5
3 changed files with 27 additions and 5 deletions

View File

@ -277,6 +277,10 @@ class Doctrine_Collection extends Doctrine_Access implements Countable, Iterator
{ {
return isset($this->data[$key]); return isset($this->data[$key]);
} }
public function search(Doctrine_Record $record)
{
return array_search($record, $this->data, true);
}
/** /**
* get * get
* returns a record for given key * returns a record for given key

View File

@ -46,6 +46,19 @@ class Doctrine_Hydrate_Record
return $coll; return $coll;
} }
public function search(Doctrine_Record $record, Doctrine_Collection $coll)
{
return array_search($record, $coll->getData(), true);
}
public function initRelated($record, $name)
{
if ( ! is_array($record)) {
$record[$name];
return true;
}
return false;
}
public function registerCollection(Doctrine_Collection $coll) public function registerCollection(Doctrine_Collection $coll)
{ {
$this->_collections[] = $coll; $this->_collections[] = $coll;

View File

@ -690,11 +690,11 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
* returns a value of a property or a related component * returns a value of a property or a related component
* *
* @param mixed $name name of the property or related component * @param mixed $name name of the property or related component
* @param boolean $invoke whether or not to invoke the onGetProperty listener * @param boolean $load whether or not to invoke the loading procedure
* @throws Doctrine_Record_Exception if trying to get a value of unknown property / related component * @throws Doctrine_Record_Exception if trying to get a value of unknown property / related component
* @return mixed * @return mixed
*/ */
public function get($name, $invoke = true) public function get($name, $load = true)
{ {
$value = self::$_null; $value = self::$_null;
$lower = strtolower($name); $lower = strtolower($name);
@ -726,9 +726,14 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
} }
try { try {
if ( ! isset($this->_references[$name])) {
$this->loadReference($name); if ( ! isset($this->_references[$name]) && $load) {
$rel = $this->_table->getRelation($name);
$this->_references[$name] = $rel->fetchRelatedFor($this);
} }
} catch(Doctrine_Table_Exception $e) { } catch(Doctrine_Table_Exception $e) {
throw new Doctrine_Record_Exception("Unknown property / related component '$name'."); throw new Doctrine_Record_Exception("Unknown property / related component '$name'.");
} }