Свои сообщения валидации rules

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

Свои сообщения валидации rules

Сообщение koluha »

Есть Код:

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

public function rules() {
        return [
            [['comment'], 'safe'],           
             ['comment', 'string','length' => [10, 255],   'message' => 'длина текста должна составлять от от 5 до 255 символов'],
        ];
    }
Не работает замена текста моим сообщением в случае валидации
тест получаю на англ
Комментарий should contain at most 255 characters.

Перерыл все, не знаю куда копать, буду признателен в помощи спасибо.
skynin
Сообщения: 400
Зарегистрирован: 2017.12.12, 10:09

Re: Свои сообщения валидации rules

Сообщение skynin »

так аттрибут safe или string и 'length' => [10, 255]?

и, поставьте для пробы 'length' => [10, 100]?
и ‘skipOnEmpty’ => false

и если все равно ваше правило не запускается, то проблема в коде который вы не привели
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
koluha
Сообщения: 38
Зарегистрирован: 2014.09.24, 15:17

Re: Свои сообщения валидации rules

Сообщение koluha »

skynin писал(а): 2020.07.26, 15:26 так аттрибут safe или string и 'length' => [10, 255]?

и, поставьте для пробы 'length' => [10, 100]?
и ‘skipOnEmpty’ => false

и если все равно ваше правило не запускается, то проблема в коде который вы не привели
Правило работает, только не работает свойство 'message' => 'мой текст

Это код во вьюхе

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

<?php $form = ActiveForm::begin(); ?>

<?= $form->field($model, 'comment')->textarea(['rows' => 2, 'cols' => 5])->label('Комментарий'); ?>

<?= Html::submitButton('Продолжить', ['class' => 'btn btn-primary']); ?>
<?php ActiveForm::end(); ?>
Аватара пользователя
Dominus
Сообщения: 892
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: Свои сообщения валидации rules

Сообщение Dominus »

В StringValidator пользовательские сообщения задаются немного по другому:

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

public function rules() {
    $msgString = 'длина текста должна составлять от 10 до 255 символов';
    return [ 
        //...       
        ['comment', 'string', 'length' => [10, 255], 
            'tooShort' => $msgString, 
            'tooLong' => $msgString, 
            'message' => 'Не является строкой'
        ],
        //...
    ];
}
https://github.com/yiisoft/yii2/blob/c4 ... or.php#L78
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
Ответить