public function testChildCountEager() { $s = new Kwf_Model_Select(); $s->whereId(1); $s->expr('parent_child_count'); $this->_modelChild->getRow($s)->parent_child_count; }
public function testWithExpr() { $s = new Kwf_Model_Select(); $s->whereEquals('id', 1); $s->expr('foo'); $row = $this->_modelChild->getRow($s); $this->assertEquals($row->foo, 777); }
public function testParentExpression() { $s = new Kwf_Model_Select(); $s->whereEquals('id', 2); $s->expr('parent_bar'); $row = $this->_model->getRow($s); $this->assertEquals(5, $row->parent_bar); }
public function testChildCountExpression() { $s = new Kwf_Model_Select(); $s->expr('child_count'); $s->whereId(1); $row = $this->_modelFoo->getRow($s); $this->assertEquals(2, $row->child_count); }
public function testSiblingEager() { $s = new Kwf_Model_Select(); $s->whereId(1); $s->expr('sibling_value'); $row = $this->_modelChild->getRow($s); $this->assertEquals(105, $row->sibling_value); }
public function testChildSumWithExpressionOrder() { $select = new Kwf_Model_Select(); $s = new Kwf_Model_Select(); $s->order('foo_value_sum', 'DESC'); $s->expr('foo_value_sum'); $row = $this->_modelBar->getRow($s); $sum = $row->foo_value_sum; $this->assertEquals(6, $sum); }
public function getFulltextContent() { $ret = array(); $model = Kwf_Model_Abstract::getInstance('Kwc_Tags_ComponentToTag'); $select = new Kwf_Model_Select(); $select->whereEquals('component_id', $this->getData()->dbId); $select->expr('tag_name'); $tags = array(); foreach ($model->getRows($select) as $tag) { $tags[] = $tag->tag_name; } //TODO: better separator that also understands solr? $ret['keywords'] = implode(' ', $tags); return $ret; }
public function buildSelect(Request $request, array $options = array()) { $select = new \Kwf_Model_Select(); if ($request->get('limit')) { $select->limit($request->get('limit'), $request->get('start')); } else { $select->limit(25, $request->get('start')); } $queryValue = trim($request->get('query')); if ($queryValue) { $queryColumns = null; if (isset($options['queryColumns'])) { $queryColumns = $options['queryColumns']; } $exprs = array(); if (!$queryColumns) { throw new \Kwf_Exception("queryColumns are required to be set"); } if (isset($options['querySplit']) && $options['querySplit']) { $queryValue = explode(' ', $queryValue); } else { $queryValue = array($queryValue); } foreach ($queryValue as $q) { $e = array(); foreach ($queryColumns as $c) { $e[] = new \Kwf_Model_Select_Expr_Like($c, '%' . $q . '%'); } if (count($e) > 1) { $exprs[] = new \Kwf_Model_Select_Expr_Or($e); } else { $exprs[] = $e[0]; } } if (count($exprs) > 1) { $select->where(new \Kwf_Model_Select_Expr_And($exprs)); } else { $select->where($exprs[0]); } } $restColumns = $this->model->getSerializationColumns(array('rest_read', 'rest')); $exprColumns = $this->model->getExprColumns(); foreach (array_intersect(array_keys($restColumns), $exprColumns) as $i) { $select->expr($i); } return $select; }