Добрый день.
Возник такой вот вопрос, как работает наследование?
Есть две модели, родительская и дочерняя.
В дочерней модели определены дополнительные свойства - масса и объём. Так же объединяется массив правил валидации и массив сценариев с родительскими массивами.
Дочерняя модель.
public $mass;
public $capacity;
public function rules()
{
return ArrayHelper::merge(parent::rules(),[
[['mass', 'capacity'], 'number', 'on' => self::SCENARIO_CALC_FORM],
]);
}
public function scenarios()
{
$scenarios = parent::scenarios();
$scenarios[self::SCENARIO_CALC_FORM] = ['mass', 'capacity'];
return $scenarios;
}
Вот при таком раскладе не идёт ajax валидация для этих полей в форме, только после отправки формы или проверки других полей формы, в ответе сервера видно, что поля валидируются, но сообщения не выводятся.
Если же эти поля, массы и объёма, добавить в правила валидации родительской таблицы, то ajax валидация работает без проблем. Но эти поля не нужны в родительской, незачем их там определять.
Вот и вопрос, что не так с наследованием? Как правильно наследовать правила валидации?
p.s. В родительской модели никакие сценарии не используются.
p.s.s
var_dump правил валидации дочерней модели