/** {@inheritdoc} */
 protected function _getSelectConditionSQL(array $criteria, $assoc = null)
 {
     $conditionSql = parent::_getSelectConditionSQL($criteria, $assoc);
     if ($conditionSql) {
         $conditionSql .= ' AND ';
     }
     return $conditionSql . $this->_getSelectConditionDiscriminatorValueSQL();
 }
Exemplo n.º 2
0
 /** {@inheritdoc} */
 protected function _getSelectConditionSQL(array $criteria, $assoc = null)
 {
     $conditionSql = parent::_getSelectConditionSQL($criteria, $assoc);
     // Append discriminator condition
     if ($conditionSql) {
         $conditionSql .= ' AND ';
     }
     $values = array();
     if ($this->_class->discriminatorValue !== null) {
         // discriminators can be 0
         $values[] = $this->_conn->quote($this->_class->discriminatorValue);
     }
     $discrValues = array_flip($this->_class->discriminatorMap);
     foreach ($this->_class->subClasses as $subclassName) {
         $values[] = $this->_conn->quote($discrValues[$subclassName]);
     }
     $conditionSql .= $this->_getSQLTableAlias($this->_class->name) . '.' . $this->_class->discriminatorColumn['name'] . ' IN (' . implode(', ', $values) . ')';
     return $conditionSql;
 }