Условие при редактировании полей

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
fname_lname
Сообщения: 38
Зарегистрирован: 2018.03.15, 12:22

Условие при редактировании полей

Сообщение fname_lname »

Пример, есть таблица успеваемости студентов: id, ФИО, оценка, группа
как запретить редактирование поля "группа" при условии если оценка ниже 3?

Код: Выделить всё

public function actionUpdate($id)
    {
        $model = $this->findModel($id);

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->id]);
        }

        return $this->render('update', [
            'model' => $model,
        ]);
    }
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Условие при редактировании полей

Сообщение rak »

можно прописать у правил валидации when
https://www.yiiframework.com/doc/guide/ ... validation
Ну и дополнительно через js скрывать поля в браузере
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Условие при редактировании полей

Сообщение unknownby »

fname_lname писал(а): 2021.06.29, 21:58 Пример, есть таблица успеваемости студентов: id, ФИО, оценка, группа
как запретить редактирование поля "группа" при условии если оценка ниже 3?

Код: Выделить всё

public function actionUpdate($id)
    {
        $model = $this->findModel($id);

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->id]);
        }

        return $this->render('update', [
            'model' => $model,
        ]);
    }
Если при создании, то как описал rak
Если при обновлении, то можно внутри представления задизэйблить, при условии

Код: Выделить всё

$disable = $model->mark < 3 ? true : false;
А в нужно месте добавить

Код: Выделить всё

'disable' => $disable
Ответить