public function __construct($record, $opts) { $componentName = $record->getTable()->getComponentName(); $q = $record->getTable()->createQuery(); $params = array($record->get('lft'), $record->get('rgt')); if (isset($opts['include_record']) && $opts['include_record']) { $query = $q->where("$componentName.lft >= ? AND $componentName.rgt <= ?", $params)->orderBy("$componentName.lft asc"); } else { $query = $q->where("$componentName.lft > ? AND $componentName.rgt < ?", $params)->orderBy("$componentName.lft asc"); } $query = $record->getTable()->getTree()->returnQueryWithRootId($query, $record->getNode()->getRootValue()); $this->maxLevel = isset($opts['depth']) ? ($opts['depth'] + $record->getNode()->getLevel()) : 0; $this->options = $opts; $this->collection = isset($opts['collection']) ? $opts['collection'] : $query->execute(); $this->keys = $this->collection->getKeys(); $this->count = $this->collection->count(); $this->index = -1; $this->level = $record->getNode()->getLevel(); $this->prevLeft = $record->getNode()->getLeftValue(); // clear the table identity cache $record->getTable()->clear(); }
/** * constructor * @var Doctrine_Collection $collection */ public function __construct($collection) { $this->collection = $collection; $this->keys = $this->collection->getKeys(); $this->count = $this->collection->count(); }
public function testAdd() { $coll = new Doctrine_Collection($this->objTable); $coll->add(new User()); $this->assertEqual($coll->count(), 1); $coll->add(new User()); $this->assertTrue($coll->count(), 2); $this->assertEqual($coll->getKeys(), array(0, 1)); $coll[2] = new User(); $this->assertTrue($coll->count(), 3); $this->assertEqual($coll->getKeys(), array(0, 1, 2)); }