Esempio n. 1
0
 /**
  * Создает команду DELETE для отдельной таблицы. Переопределяет родительскую реализацию
  * для проверки наличия выражения ORDER BY в случае наличия определенного смещения
  * @param mixed $table схема таблицы ({@link CDbTableSchema}) или имя таблицы (строка)
  * @param CDbCriteria $criteria критерий запроса
  * @return CDbCommand команда удаления
  */
 public function createDeleteCommand($table, $criteria)
 {
     $criteria = $this->checkCriteria($table, $criteria);
     return parent::createDeleteCommand($table, $criteria);
 }
Esempio n. 2
0
 public function actionDelete($id)
 {
     if (Yii::app()->request->isPostRequest) {
         if (isset($_POST['YII_CSRF_TOKEN']) && $_POST['YII_CSRF_TOKEN'] === Yii::app()->request->csrfToken) {
             $model = Pages::model()->findByPk($id);
             if ($model == null) {
                 throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');
             }
             foreach ($model->contents as $content) {
                 $criteria = new CDbCriteria();
                 $criteria->condition = 'content_id=:content_id';
                 $criteria->params = array('content_id' => $content->id);
                 $builder = new CDbCommandBuilder(Yii::app()->db->getSchema());
                 $command = $builder->createDeleteCommand('contents_lang', $criteria);
                 $result = $command->execute();
                 $content->delete();
             }
             $criteria = new CDbCriteria();
             $criteria->condition = 'page_id=:page_id';
             $criteria->params = array('page_id' => $model->id);
             $builder = new CDbCommandBuilder(Yii::app()->db->getSchema());
             $command = $builder->createDeleteCommand('pages_lang', $criteria);
             $result = $command->execute();
             $model->delete();
             Yii::app()->user->setFlash('success', Yii::t('app', 'Страница успешно удалена'));
             $this->redirect($this->createUrl('index'));
         }
     } else {
         throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');
     }
 }