Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
public function rules() {
return [
[['field.child1.child2'], 'required'],
[['anotherField.hisChild'], 'string', 'max' => 20],
];
}
Я же говорю:
Возможно, всё что я напишу ниже – очевидно, и все этим пользуются давно, но я вот недавно только это понял и придумал, так что, может, кому и пригодится.
Мне лично как-то неочевидно было до сих пор, к сожалению :)
И да, насчет заголовка – конечно, мы в данном случае используем \yii\base\Model для валидации (и присвоения значений) другой модели (что, в общем, в примерах есть), но и привязка к mongodb и её вложенным документам тоже важна, как по мне. Именно про это речь.
public function rules() {
return [
['params'], CompositeValidator::className(), 'rules' => [
[['orderCallback'], 'match', 'pattern' => '|^https?://.+|'],
[['orderCallback'], 'default', 'value' => null],
[['calc', 'calcOasisPriceType'], 'filter', 'filter' => 'boolval'],
[['factor'], 'filter', 'filter' => 'floatval'],
[['calcOasisFactor'], 'default', 'value' => null],
[['fields[].title'], 'required'],
]],
];
}
public static function getAttributeName($attribute)
{
if (preg_match('/(^|.*\])([\w\.]+)(\[.*|$)/', $attribute, $matches)) {
return $matches[2] . $matches[3];
} else {
throw new InvalidParamException('Attribute name must contain word characters only.');
}
}
Валидация данных вложенных документов MongoDB в Yii2