Author: Bailang Source: www.manks.top/article/yii2_custom_rules
The copyright of this article belongs to the author, and you are welcome to reprint it. However, this statement must be retained without the author’s consent, and a link to the original text must be given in an obvious position on the article page, otherwise it will be retained The right to pursue legal liability.
One of the powerful features of yii2 is its Form component, which is both convenient and safe. Some friends feel that after using Yii for a while, it seems to be nothing but "difficult to understand" than TP.
The leader arranged for a registration function, but this guy used Baidu’s various good form styles, and Baidu’s validate verification. I really felt sorry for this guy.
Of course, without further ado, our focus is to use ActiveForm and then how to implement custom validation rules.
Let’s talk about the scenario first:
Conditions: ①. There are two fields, A and B. ②. A has two values, 1 and 2.
The requirement is: when the value of A selected by the user is equal to 1 When the value of B is equal to 2, it doesn’t matter if the value of B is not written. Among them, A is required.
Let’s see how to implement it using the rules that come with Yii2
First add the following rule to its associated model
/** * @inheritdoc */ public function rules() { return [ [['B'], 'requiredByASpecial'], ]; }
Then implement the requiredByASpecial method in the model
/** * 自定义验证B */ public function requiredByASpecial($attribute, $params) { if ($this->A== 1) { if ($this->B=== '') $this->addError($attribute, "B的值不可以为空."); } }
The meaning of the above is It is said that when A is equal to 1 and the value of B is empty, the error message "The value of B cannot be empty" is returned.
The above is just a simple example, which can be applied according to specific needs.
The above introduces the custom validation rules rules in yii2, including the content of rules. I hope it will be helpful to friends who are interested in PHP tutorials.