/** * Return a query object, creating a new one if needed. * * @param Doctrine_Query $query * @return Doctrine_Query */ public function getQuery(Doctrine_Query $query = null) { if (is_null($query)) { $query = parent::createQuery('variation'); } return $query; }
public function createQuery($alias = '') { //By default, collection is ordered by length descending. This prevents word overlap // ex: 'my word' will match before 'word'. More "specific" Hyperwords match first $q = parent::createQuery($alias); $q->select('*, LENGTH(name) as length')->orderBy('length DESC'); return $q; }
/** * @covers Robo47_Log_Writer_DoctrineTable::_write */ public function testWriteWithChangedColumnMap() { $mapping = array('message' => 'foo', 'priority' => 'baa', 'category' => 'blub', 'timestamp' => 'baafoo'); $this->_writer->setTable($this->_table2); $this->_writer->setColumnMap($mapping); $this->assertEquals(0, $this->_table2->count()); $date = date('c'); $event = array('message' => 'Foo', 'priority' => 0, 'category' => 'bla', 'timestamp' => $date); $this->_writer->write($event); $this->assertEquals(1, $this->_table2->count()); $entry = $this->_table2->createQuery()->select()->execute()->getFirst(); $this->assertEquals($event['message'], $entry->foo); $this->assertEquals($event['priority'], $entry->baa); $this->assertEquals($event['category'], $entry->blub); $this->assertEquals($event['timestamp'], $entry->baafoo); }
/** * Load all relationships or the named relationship passed * * @param mixed $name * @return boolean */ public function loadRelated($name = null) { $list = array(); $query = $this->_table->createQuery(); if ( ! isset($name)) { foreach ($this->data as $record) { $value = $record->getIncremented(); if ($value !== null) { $list[] = $value; } } $query->where($this->_table->getComponentName() . '.id IN (' . substr(str_repeat("?, ", count($list)),0,-2) . ')'); if ( ! $list) { $query->where($this->_table->getComponentName() . '.id IN (' . substr(str_repeat("?, ", count($list)),0,-2) . ')', $list); } return $query; } $rel = $this->_table->getRelation($name); if ($rel instanceof Doctrine_Relation_LocalKey || $rel instanceof Doctrine_Relation_ForeignKey) { foreach ($this->data as $record) { $list[] = $record[$rel->getLocal()]; } } else { foreach ($this->data as $record) { $value = $record->getIncremented(); if ($value !== null) { $list[] = $value; } } } if ( ! $list) { return; } $dql = $rel->getRelationDql(count($list), 'collection'); $coll = $query->query($dql, $list); $this->populateRelated($name, $coll); }
/** * @return Zend_Auth_Result */ public function authenticate() { //FIXME: Check if this querying actually works or not... $result = $this->_table->createQuery("dctrn_find")->where("{$this->_credentialCol} = ?", $this->_credential)->andWhere("{$this->_identityCol} = ?", $this->_identity)->execute(array()); return new Zend_Auth_Result($result[0]->id ? Zend_Auth_Result::SUCCESS : Zend_Auth_Result::FAILURE, $result[0]->id ? $result[0] : null); }
/** * By default, collection is ordered by length descending. This prevents word overlap * ex: 'my word' will match before 'word'. More "specific" Keywords match first * * @author Brent Shaffer */ public function createQuery($alias = '') { $q = parent::createQuery($alias); $q->select('*, LENGTH(name) as length')->orderBy('length DESC'); return $q; }
/** * (non-PHPdoc) * @see Doctrine_Table::createQuery() * @return dmDoctrineQuery */ public function createQuery($alias = '') { return parent::createQuery($alias); }