Size: a a a

2020 May 27

YR

Yurii Ripa in Yii Framework 2
Alexandr
[['textarea_field'], 'string', 'max' => 2000]
Так работает валидация:
 echo $form->field($modelForm, 'textarea_field');
А так нет:
 echo $form->field($modelForm, 'textarea_field')->textarea(['rows' => 6]);
источник

YR

Yurii Ripa in Yii Framework 2
Если форма пропускает, то валидация на сервере всё равно пишет что длина больше 2000
источник

A

Alexandr in Yii Framework 2
а что в массиве $rules модели?
источник

A

Alexandr in Yii Framework 2
$modelForm
источник

A

Alexandr in Yii Framework 2
ну и возможно, что срабатывает правило валидации модели которой присваиваются данные в modelForm
источник

YR

Yurii Ripa in Yii Framework 2
[['textarea_field'], function($attribute){
               if (mb_strlen($this->$attribute) > 2000) {
                   $this->addError($attribute, 'The textarea_field is too long! Maximum 2000 symbols!');
               }
  }],
Эта проверка тоже не проходит
источник

YR

Yurii Ripa in Yii Framework 2
RuntimeException: ScreenplayForm. Error validation: The textarea_field is too long! Maximum 2000 symbols!;
источник

A

Alexandr in Yii Framework 2
с точки зрения валидации все равно какое поле textarea или input[type=text]
проверьте что в валидатор приходит
источник

A

Alexandr in Yii Framework 2
т.е. какое значение именно валидируется
источник

YR

Yurii Ripa in Yii Framework 2
Текст 1280 символов 'Миша хочет добиться повышения. Но...говорит “Ну ты и хитрюга!”'
перед      if (!$modelForm->validate()) {
источник

YR

Yurii Ripa in Yii Framework 2
Может что с длиной одного символа?
источник

YR

Yurii Ripa in Yii Framework 2
if (mb_strlen($this->$attribute) > 2000) {
if (strlen($this->$attribute) > 2000) {
Оба не пропускают
источник

А

Аль Пачино in Yii Framework 2
Yurii Ripa
Текст 1280 символов 'Миша хочет добиться повышения. Но...говорит “Ну ты и хитрюга!”'
перед      if (!$modelForm->validate()) {
Посмотрите какой тип данных у textarea_field.
источник

YR

Yurii Ripa in Yii Framework 2
string(3622) "Миша хочет добиться п
источник

А

Аль Пачино in Yii Framework 2
3622  - символов, и не пропустит
источник

А

Аль Пачино in Yii Framework 2
Напроверку также можете юзать:
$modelForm->getErrors();
$modelForm->errors();
$modelForm->hasErrors();

Покажет ошибки
источник

А

Аль Пачино in Yii Framework 2
В контроллере var_dump() или брейкпойнт xdebug
источник

YR

Yurii Ripa in Yii Framework 2
$modelForm->errors();
и дает
The textarea_field is too long! Maximum 2000 symbols!;
источник

А

Аль Пачино in Yii Framework 2
Yurii Ripa
string(3622) "Миша хочет добиться п
Вот, не заметил 3622? Это ж количество символов.
источник

YR

Yurii Ripa in Yii Framework 2
Аль Пачино
3622  - символов, и не пропустит
да - но если посчитать то 1400 с пробелами.
источник