For some reason I cannot get conditional rule 'required' to work. Even if I reduce the condition to "always return false", required-validation seems to check this unnecessary field:
public function rules() {
return [
[['order_id', 'product_id', 'quantity'], 'required'],
['product_date', 'required',
'whenClient' => "function(attribute, value) {
return false;
}"
],
// more rules here
[['date_create', 'date_update', 'product_date'], 'safe'],
// more rules here
];
}
On form submit save() fails and $model->getErrors() points to product_date as a necessary field. What have I missed? Thank you in advance.
Replace
With
You should add the server-side condition to the rule as well (documentation: when):
whenClient
is only for JS on the client side. When the form gets submitted the validation has to be done (or skipped) at the server as well. Usually you should have awhen
definition if you havewhenClient
definition. Thewhen
definition is much more important,whenClient
is just to improve the user experience.Find more infos here.