One of two model’s attributes must be provided
Suppose that we have any Yii 2 model with to
and from
attributes. And we want to make sure that either of them is provided. So we need a logical OR relation between these two attributes.
A slightly modified Stack Overflow example will do the trick:
['from', 'required', 'when' => function($model) { return !is_numeric($model->to); }, 'message' => Yii::t('models', 'Either "to" or "from" must be provided.')],
Using a closure (an anonymous function) is all the “magic” here. We use it as a value $when
of property of yii\validators\Validator (actually yii\validators\RequiredValidator in this case).
To basically tell Yii 2 that it must validate whether from
does not have null or empty value if, and only if to
does not have null or empty value as well.