程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> yii2中自定義驗證規則rules,yii2rules

yii2中自定義驗證規則rules,yii2rules

編輯:關於PHP編程

yii2中自定義驗證規則rules,yii2rules


作者:白狼 出處:www.manks.top/article/yii2_custom_rules 

本文版權歸作者,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

yii2的一個強大之處之一就是他的Form組件,既方便又安全。有些小伙伴感覺用yii一段時間了,好嘛,除了比tp"難懂"好像啥都沒有。

領導安排搞一個注冊的功能,這家伙刷刷刷的又是百度啥啥啥好的表單樣式,又是百度啥啥啥validate驗證,真替這家伙捏把汗。

當然啦,廢話說在前頭,咱們的重點喃,是要利用ActiveForm,然後怎麼去實現自定義驗證規則。

先來說說場景:

條件:①、有兩個字段分別是A和B ②、A有兩個值分別是1和2

需求是:當用戶選擇的A的值等於1的時候,B的值必須填寫,當A的值等於2的時候,B的值不寫也沒關系。其中A必選。

我們來看看用Yii2自帶的rules怎麼去實現

首先在其關聯model上加上下面這句規則

   /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['B'], 'requiredByASpecial'],
        ];
    }

然後在該model裡面去實現requiredByASpecial方法即可

   /**
     *  自定義驗證B
     */
    public function requiredByASpecial($attribute, $params)
    {
        if ($this->A== 1) 
        {
            if ($this->B=== '')
                $this->addError($attribute, "B的值不可以為空.");
        }
    }

上面的意思就是說當A等於1且B的值為空時,返回錯誤信息"B的值不可以為空"。

以上只是舉了一個簡單的例子,可以根據具體需求應用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved