xoma2
@xoma2
Программист

Yii2 Как удалить все записи с определенным id?

Создаю экшон
public function actionUpdate($id){

        $model = $this->findModel($id);                          
        $postData = $this->findDataModel($id);              

        if (
            $model->load(Yii::$app->request->post())    &&
            $postData->load(Yii::$app->request->post())    &&
            $model->save() &&
            $postData->save()
          ){

            $newData = PostData::find()->where(['post_id' => $id])->all();

            $postData = new PostData();

            $postData->post_id = $id;

            $rows[] = [];

            foreach($_POST['PostData'] as $key => $value){

                $str = strpos($key, "_");
                $key = substr($key, 0, $str);

                $postData->data_type = $key;
                $postData->post_data = $value;
                $postData->post_id;

                $rows[] = [
                    'post_id' => $postData->post_id,
                    'data_type' => $postData->data_type,
                    'post_data' => $postData->post_data
                ];
            }

            array_shift($rows);

            Yii::$app->db->createCommand()->batchInsert(
                $postData::tableName(),
                ['post_id', 'data_type', 'post_data'],
                $rows
            )->execute();


            if ( isset($_POST['save']) || isset($_POST['update'])) {
                    $model->save();
                    return $this->redirect(['view', 'id' => $model->id]);
            }


Мне надо перед тем как записать в postModel что нибудь удалить от туда все старые записи. Но ни delete() ни deleteAll() ни deleteAllGroup() ни createCommand не работают и в итоге все равно появляются новые записи и остаются старые
  • Вопрос задан
  • 15967 просмотров
Пригласить эксперта
Ответы на вопрос 2
@bighoc
php/javascript developer
YourModel::deleteAll('id = :id', [':id' => $id]);
Ответ написан
Комментировать
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Может быть просто перезаписывать их?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы