Задать вопрос
@petr_reznikov

Как проверить есть ли совпадение в базе по id? И обновить данные если такая запись есть?

Контроллер принимает запись с формы

class EditPriceController extends Controller
{
    public function actionIndex(){

        $post = Yii::$app->request->post();
        $model = EditPrice::findOne(['org_id' => $post['org_id']]);

        if (is_null($model)) {
            $model = new EditPrice();
            if($model->load($post)){
                if($model->save()){
                    Yii::$app->session->setFlash('success', 'Данные приняты');
                    return $this->refresh();
                }else{
                    Yii::$app->session->setFlash('error', 'ОЛОЛО ШТО ТО НЕ ТАГ');
                }
            }
        } else {
            $model->load($post);
            if($model->save()){
                Yii::$app->session->setFlash('success', 'Данные приняты');
                return $this->refresh();
            }else{
                Yii::$app->session->setFlash('error', 'ОЛОЛО ШТО ТО НЕ ТАГ');
            }
        }
        return $this->render('index', compact('model'));
    }
}


во view форма выглядит вот так

<?php $form = ActiveForm::begin(['options' => ['id' => 'testForm']])?>
<?= $form->field($model,'org_id')->label('id организации')?>
<?= $form->field($model,'arrive_in_week')->label('Цена возврата за неделю')?>
<?= Html::submitButton('Отправить', ['class' => 'btn btn-success'])?>
<?php $form = ActiveForm::end()?>


я пытаюсь проверить приходит ли org_id который уже есть в базе и если есть - обновить, а если нет записать
но $model приходит как null, и записи только записываются, подскажите как можно решить данную проблему?
  • Вопрос задан
  • 90 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
vitaly_74
@vitaly_74
я думаю проблема в return $this->refresh();
Попробуйте заменить на return $this->render('index', compact('model'));
либо вообще закомментируйте, алгоритм все равно спустится до render.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽