Ejemplo n.º 1
0
 /**
  * @param array $callback
  */
 public function setCallback(array $callback)
 {
     if (($sql = call_user_func_array($callback, array())) && strval(trim($sql)) != '') {
         $this->query->registerRuntimeField('', new Entity\ExpressionField('__CALLBACK', '(CASE WHEN (' . $sql . ') THEN 1 ELSE 0 END)'));
         $this->query->addFilter('=__CALLBACK', 1);
     }
 }
Ejemplo n.º 2
0
 function __construct(OrderQuery $query, array $select)
 {
     $this->select = $query->getSelectNamesAssoc() + array_flip($select);
     if (!$query->aggregated()) {
         $query->addAliasSelect('TYPE');
         $query->addAliasSelect('SETTINGS');
         $query->addAliasSelect('MULTIPLE');
         $query->registerRuntimeField('PROPERTY_ID', new Entity\ExpressionField('PROPERTY_ID', 'DISTINCT(%s)', 'ID'));
         $sel = $query->getSelect();
         array_unshift($sel, 'PROPERTY_ID');
         $query->setSelect($sel);
     }
 }