Вопрос по ActiveForm::validate($model) и $model->addError

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
xr0m3oz
Сообщения: 61
Зарегистрирован: 2015.05.20, 18:02

Вопрос по ActiveForm::validate($model) и $model->addError

Сообщение xr0m3oz »

Проблема в том что не понятно почему, тут ActiveForm::validate($model) нету ошибки, хотя она есть в model->errors
Ошибку добавляю через $model->addError('link','Custom error');

Может кто знает в чем проблема?

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

	public function actionTest() {

		$model = new Model(); // extends Model

		if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
			Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
			$model->addError('link','Custom error');
			return ActiveForm::validate($model);
		}

		return ActiveForm::validate($model);
	}

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

    public function rules()
    {
        return [
            [['link'], 'required'],
            [['link'], 'string'],
        ];
    }
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Вопрос по ActiveForm::validate($model) и $model->addError

Сообщение Nex-Otaku »

В методе "validate" первым делом сбрасываются все ранее установленные ошибки. Хотите добавить свою - добавляйте после "validate".
xr0m3oz
Сообщения: 61
Зарегистрирован: 2015.05.20, 18:02

Re: Вопрос по ActiveForm::validate($model) и $model->addError

Сообщение xr0m3oz »

Nex-Otaku писал(а): 2017.11.19, 14:01 В методе "validate" первым делом сбрасываются все ранее установленные ошибки. Хотите добавить свою - добавляйте после "validate".
Не совсем понятно, вы могли бы на этом куске кода показать?
Я просто думал что нужно до вызова валидации, ставить свои ошибки $model->addError(), а вы говорите что после..
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Вопрос по ActiveForm::validate($model) и $model->addError

Сообщение ElisDN »

Не "до" или "после", а "во время". Валидируйте в кастомном валидаторе внутри модели.
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Вопрос по ActiveForm::validate($model) и $model->addError

Сообщение maleks »

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

return ActiveForm::validate($model);
Ничто не мешает вот этот возвращаемый массив с ошибками перед возвратом модифицировать.
Yii2 universal module sceleton - for basic and advanced templates
Ответить