Closed padlyuck closed 9 years ago
@padlyuck Для валидации динамических атрибутов модели
Но массив $validators дальше нигде не используется. Возможно вопрос кажется глупым, но я столкнулся со странным поведением вашей библиотеки. Дело в том, что в консольном приложении если модели задать правила 'default', то они не срабатывают для дефолтного языка. Так выглядит правило(все поля переводимые)
[['description', 'name', 'project',], 'default', 'value' => '123', 'skipOnEmpty' => false,],
Добавляю в базу новый элемент(языки en, ru английский дефолтный)
$model = new \common\models\Liner([
'code'=>uniqid('liner_'),//непереводимое поле
'name'=>'test',
'name_ru'=>'test_ru',
]);
$model->save();
В веб приложении таблица выглядит следующим образом
language | name | description | project
---------+-----------+-------------+--------
en | 'test' | '123' | '123'
---------+-----------+-------------+--------
ru | 'test_ru' | '123' | '123'
В консольном приложении имею другую картину
language | name | description | project
---------+-----------+-------------+--------
en | 'test' | '' | ''
---------+-----------+-------------+--------
ru | 'test_ru' | '123' | '123'
При этом правила не работают только для языка по-умолчанию
Но массив $validators дальше нигде не используется
Переменная $validators
содержит ссылку на массив валидаторов модели.
Валидатором default
не пользовался. Нужно проверить.
да, мой промах. не обратил внимания, что там не обычный массив.
Не смог повторить баг на чистом окружении. Видимо проблема кроется где-то в моем проекте.
Юрий, подскажите пожалуйста, зачем нужен этот кусок кода https://github.com/OmgDef/yii2-multilingual-behavior/blob/master/src/MultilingualBehavior.php#L173-L200 переменная $validators дальше нигде не используется.