/**
  * 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);
 }
Esempio n. 4
0
    /**
     * 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);
    }
Esempio n. 5
0
 /**
  * @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;
 }
Esempio n. 7
0
 /**
  * (non-PHPdoc)
  * @see Doctrine_Table::createQuery()
  * @return dmDoctrineQuery
  */
 public function createQuery($alias = '')
 {
     return parent::createQuery($alias);
 }