<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 自動驗證 [上一頁](# "上一頁")[下一頁](# "下一頁") 類型檢查只是針對數據庫級別的驗證,所以系統還內置了數據對象的自動驗證功能來完成模型的業務規則驗證,而大多數情況下面,數據對象是由表單提交的$_POST數據創建。需要使用系統的自動驗證功能,只需要在Model類里面定義$_validate屬性,是由多個驗證因子組成的二維數組。 驗證因子格式: `array(驗證字段,驗證規則,錯誤提示,[驗證條件,附加規則,驗證時間])`**說明** <table border="0" cellspacing="1" cellpadding="0"><tr><td>驗證字段</td> <td>必須</td> <td width="550">需要驗證的表單字段名稱,這個字段不一定是數據庫字段,也可以是表單的一些輔助字段,例如確認密碼和驗證碼等等。有個別驗證規則和字段無關的情況下,驗證字段是可以隨意設置的,例如expire有效期規則是和表單字段無關的。</td> </tr><tr><td>驗證規則</td> <td>必須</td> <td>要進行驗證的規則,需要結合附加規則,如果在使用正則驗證的附加規則情況下,系統還內置了一些常用正則驗證的規則,可以直接作為驗證規則使用,包括:require?字段必須、email?郵箱、url?URL地址、currency?貨幣、number?數字。</td> </tr><tr><td>提示信息</td> <td>必須</td> <td>用于驗證失敗后的提示信息定義</td> </tr><tr><td>驗證條件</td> <td>可選</td> <td><p>包含下面幾種情況:</p><br/><p>Model::EXISTS_VALIDATE?或者0?存在字段就驗證?(默認)</p><br/><p>Model::MUST_VALIDATE?或者1?必須驗證</p><br/><p>Model::VALUE_VALIDATE或者2?值不為空的時候驗證</p></td> </tr><tr><td>附加規則</td> <td>可選</td> <td><p>配合驗證規則使用,包括下面一些規則:</p><br/><p>regex?正則驗證,定義的驗證規則是一個正則表達式(默認)</p><br/><p>function函數驗證,定義的驗證規則是一個函數名</p><br/><p>callback方法驗證,定義的驗證規則是當前模型類的一個方法</p><br/><p>confirm驗證表單中的兩個字段是否相同,定義的驗證規則是一個字段名</p><br/><p>equal?驗證是否等于某個值,該值由前面的驗證規則定義</p><br/><p>in驗證是否在某個范圍內,定義的驗證規則必須是一個數組</p><br/><p>length驗證長度,定義的驗證規則可以是一個數字(表示固定長度)或者數字范圍(例如3,12?表示長度從3到12的范圍)</p><br/><p>between驗證范圍,定義的驗證規則表示范圍,可以使用字符串或者數組,例如1,31或者array(1,31)</p><br/><p>expire驗證是否在有效期,定義的驗證規則表示時間范圍,可以到時間,例如可以使用?2012-1-15,2013-1-15?表示當前提交有效期在2012-1-15到2013-1-15之間,也可以使用時間戳定義</p><br/><p>ip_allow?驗證IP是否允許,定義的驗證規則表示允許的IP地址列表,用逗號分隔,例如?201.12.2.5,201.12.2.6</p><br/><p>ip_deny?驗證IP是否禁止,定義的驗證規則表示禁止的ip地址列表,用逗號分隔,例如201.12.2.5,201.12.2.6</p><br/><p>unique?驗證是否唯一,系統會根據字段目前的值查詢數據庫來判斷是否存在相同的值。</p></td> </tr><tr><td>驗證時</td> <td>可選</td> <td><p>Model::?MODEL_INSERT?或者1新增數據時候驗證</p><br/><p>Model::?MODEL_UPDATE?或者2編輯數據時候驗證</p><br/><p>Model::?MODEL_BOTH?或者3?全部情況下驗證(默認)</p></td> </tr></table> **示例**: `protected?$_validate?=?array( ????array('verify','require','驗證碼必須!'),?//默認情況下用正則進行驗證 ????array('name','','帳號名稱已經存在!',0,'unique',1),?//?在新增的時候驗證name字段是否唯一 ????array('value',array(1,2,3),'值的范圍不正確!',2,'in'),?//?當值不為空的時候判斷是否在一個范圍內 ????array('repassword','password','確認密碼不正確',0,'confirm'),?//?驗證確認密碼是否和密碼一致 ????array('password','checkPwd','密碼格式不正確',0,'function'),?//?自定義函數驗證密碼格式 );`當使用系統的create方法創建數據對象的時候會自動進行數據驗證操作,代碼示例: `$User?=?D("User");?//?實例化User對象 if?(!$User->create()){ ????//?如果創建失敗?表示驗證沒有通過?輸出錯誤提示信息 exit($User->getError()); }else{ ????//?驗證通過?可以進行其他數據操作 }`通常來說,每個數據表對應的驗證規則是相對固定的,但是有些特殊的情況下面可能會改變驗證規則,我們可以動態的改變驗證規則來滿足不同條件下面的驗證:`$User?=?D("User");?//?實例化User對象 $validate?=?array( ????array('verify','require','驗證碼必須!'),?//?僅僅需要進行驗證碼的驗證 ); $User->?setProperty("_validate",$validate); $result?=?$User->create(); if?(!$result){ ????//?如果創建失敗?表示驗證沒有通過?輸出錯誤提示信息 ????exit($User->getError()); }else{ ????//?驗證通過?可以進行其他數據操作 }`**多字段驗證** 自動驗證功能中的function和callback規則可以支持多字段。 例子:`protected?$_validate?=?array( ????array('user_id,good_id',?'checkIfOrderToday',?'今天已經購買過,請明天再來',?1,'callback',?1), ); protected?function?checkIfOrderToday($data){ ????$map?=?$data; ????$map['ctime']?=?array(array('gt',[開始時間]),?array('lt',?[結束時間])); ????if($this->where($map)->find()) ????????return?false; ????else ????????return?true; }`**批量驗證** 新版支持數據的批量驗證功能,只需要在模型類里面設置patchValidate屬性為true( 默認為false),設置批處理驗證后,getError() 方法返回的錯誤信息是一個數組,返回格式是:`array("字段名1"=>"錯誤提示1","字段名2"=>"錯誤提示2"...?)`前端可以根據需要需要自行處理。**手動驗證** 3.1版本開始,可以使用validate方法實現動態和批量手動驗證,例如:`$this->validate($validate)->create();`其中$validate變量的規范和_validate屬性的定義規則一致,而且還可以支持函數調用(由于PHP本身的限制,在類的屬性定義中不能調用函數)。 通過這一改進,以前需要支持數據自動驗證,必須定義模型類的情況已經不再出現,你完全可以通過M方法實例化模型類后使用動態設置完成自動驗證操作。 另外還有一個check方法,用于對單個數據的手動驗證,支持部分自動驗證的規則,用法如下:`?check('驗證數據','驗證規則','驗證類型')?`驗證類型支持 in between equal length regex expire ip_allow ip_deny,默認為regex 結果返回布爾值 `$model->check($value,'email');? $model->check($value,'1,2,3','in');` [上一頁](# "上一頁")[下一頁](# "下一頁")
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看