ThinkPHP自動驗證規則中的confirm的作用是什嗎?

來源:互聯網
上載者:User
一般驗證規則是這樣寫的:

   // 驗證確認密碼是否和密碼一致array('repassword','password','確認密碼不正確。',0,'confirm'),     

第四個參數是0,表示資料庫中存在repassword這列的話則驗證,但是自己寫的代碼,難道不知道資料庫中是否存在這列嗎?

如果沒有這列,寫這個驗證規則不是很多餘嗎?

如果有這一列,參數直接寫1(必須驗證)不是更好嗎?

另外一個疑問就是:資料庫中有必要為同一個使用者名稱存兩個相同的密碼嗎?

回複內容:

一般驗證規則是這樣寫的:

   // 驗證確認密碼是否和密碼一致array('repassword','password','確認密碼不正確。',0,'confirm'),     

第四個參數是0,表示資料庫中存在repassword這列的話則驗證,但是自己寫的代碼,難道不知道資料庫中是否存在這列嗎?

如果沒有這列,寫這個驗證規則不是很多餘嗎?

如果有這一列,參數直接寫1(必須驗證)不是更好嗎?

另外一個疑問就是:資料庫中有必要為同一個使用者名稱存兩個相同的密碼嗎?

confirm 欄位不是為了你存資料庫使用的。
使用情境一般是,使用者註冊、修改密碼的時候,讓使用者輸入兩次密碼
第一次是使用者佈建的密碼,第二次是使用者確認密碼

confirm的作用就是驗證表單中的兩個欄位是否相同
第4個參數有三個值可選:

Model::EXISTS_VALIDATE 或者0 存在欄位就驗證 (預設)Model::MUST_VALIDATE 或者1 必須驗證Model::VALUE_VALIDATE或者2 值不為空白的時候驗證

他說的存在欄位並不是資料庫存的欄位,而是表單中的控制項的name值,與資料庫的那個欄位不是同一個概念
預設的情況下是表單中有這個name值的控制項才進行驗證的

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.