/** * @todo This should also be moved to the behavior at some point. * This method overrides the parent in order to raise PluginEvents for Bulk delete operations. * * Filter Criteria are wrapped into a CDBCriteria instance so we have a single instance responsible for holding the filter criteria * to be passed to the PluginEvent, * this also enables us to pass the fully configured CDBCriteria instead of the original Parameters. * * See {@link find()} for detailed explanation about $condition and $params. * @param array $attributes list of attribute values (indexed by attribute names) that the active records should match. * An attribute value can be an array which will be used to generate an IN condition. * @param mixed $condition query condition or criteria. * @param array $params parameters to be bound to an SQL statement. * @return integer number of rows affected by the execution. */ public function deleteAllByAttributes($attributes, $condition = '', $params = array()) { $builder = $this->getCommandBuilder(); $table = $this->getTableSchema(); $criteria = $builder->createColumnCriteria($table, $attributes, $condition, $params); $this->dispatchPluginModelEvent('before' . get_class($this) . 'DeleteMany', $criteria); $this->dispatchPluginModelEvent('beforeModelDeleteMany', $criteria); return parent::deleteAllByAttributes(array(), $criteria, array()); }
/** * * @param array $attributes * @param string $condition * @param array $params * @return boolean */ public function deleteAllByAttributes($attributes, $condition = '', $params = array()) { if (CStubActiveRecord::isUnittests()) { return CallFactory::call($this, 'deleteAllByAttributes'); } return parent::deleteAllByAttributes($attributes, $condition, $params); }