著者: Bailang 出典: www.manks.top/article/yii2_custom_rules
この記事の著作権は著者に属しており、転載することは歓迎されていますが、この声明は著者の同意とリンクなしに保持されなければなりません。原文の内容は、記事ページのわかりやすい位置に記載する必要があります。そうでない場合は、法的責任を追及する権利が保持されます。
yii2 の強力な機能の 1 つは、便利で安全な Form コンポーネントです。 Yii をしばらく使ってみると、TP よりも「わかりにくい」としか思えないという友人もいます。
リーダーが登録機能を用意してくれたのですが、この人はBaiduのさまざまな良いフォームスタイルを使用しており、Baiduの検証を使用していて、この人には本当に申し訳ありませんでした。
もちろん、これ以上面倒なことはせずに、ActiveForm を使用すること、そしてカスタム検証ルールを実装する方法に焦点を当てます。
まずシナリオについて話しましょう:
条件: ①. A と B の 2 つのフィールドがあります。 ②. A には 2 つの値があります。
要件は次のとおりです: A の値がユーザーによって選択された場合が 1 に等しい B の値が 2 に等しい場合、B の値は書き込まれなくても問題ありません。このうちAは必須です。
Yii2付属のルールを使って実装する方法を見てみましょう
まず、関連付けられたモデルに次のルールを追加します
/** * @inheritdoc */ public function rules() { return [ [['B'], 'requiredByASpecial'], ]; }
次に、モデルにrequiredByASpecialメソッドを実装します
/** * 自定义验证B */ public function requiredByASpecial($attribute, $params) { if ($this->A== 1) { if ($this->B=== '') $this->addError($attribute, "B的值不可以为空."); } }
上記の意味は と言われています。 A が 1 で、B の値が空の場合、「B の値を空にすることはできません」というエラー メッセージが返されます。
上記は単なる例であり、特定のニーズに応じて適用できます。
上記は、yii2 のカスタム検証ルールのルールをルールの内容も含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。