I am using dynamic model in my yii2 basic application.
following is code of my dynamic model.
$model = new \yii\base\DynamicModel([
'role', 'from_rm', 'to_rm', 'user1_subdistrcts'
]);
$model->addRule(['user1_subdistrcts', 'role'], 'required', ['message' => "Please select this field."])
->addRule(['from_rm'], 'checkRm');
here i am willing to user custom validation function 'checkRm' form from_rm
field i have also defined checkRm function like this :
public function checkRm($from_rm, $params)
{
$this->addError($from_rm, 'Please Select Regional Manager.');
}
But when i submit form i get error Class checkRm does not found
Now please help how to use custom validation in dynamic model.
I have also tried when
and whenClient
conditions but those are also not working
Try this:
$model = new \yii\base\DynamicModel([
'role', 'from_rm', 'to_rm', 'user1_subdistrcts'
]);
$model->addRule('from_rm', function ($attribute, $params) use ($model) {
$model->addError($attribute, 'Please Select Regional Manager.');
});
EDIT:
Yes, it works. But if you want to test with an empty value for from_rm
, you need to set skipOnEmpty
to false
. Example:
$model = new \yii\base\DynamicModel([
'role', 'from_rm', 'to_rm', 'user1_subdistrcts'
]);
$model->addRule('from_rm', function ($attribute, $params) use ($model) {
$model->addError($attribute, 'Please Select Regional Manager.');
}, [
'skipOnEmpty' => false,
]);
$model->validate();
var_dump($model->getErrors());
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With