tp5 Validate類 使用的小坑

2021-09-09 08:19:10 字數 562 閱讀 2757

當我們使用tp5 的validate類的時候,通常會 自已建立乙個 basevalidate extends validate

我們在 basevalidate 中書寫了一些公用的自定義的判斷規則

此時在程式中使用basevalidate 中的公用的 規則的時候要注意了

如果新建乙個 basevalidate 物件的話,就使用 new basevalidate($rules,$msg,$field) 這個方法

而不要使用 繼承的方法  basevalidate::make($rules,$msg,$fiels) 這是乙個錯誤的方法,根本不能使用 basevalidate中公用的方法

現象列印出來可以看到   正確的方法返回的是 basevalidate 物件   , 錯誤的方法返回的是 validate  物件

原因看原始碼得知  static make方法中  return  new self($rules,$msg,$field);  原因就是在這個self上  子類方法中沒有重寫 make方法,當呼叫make方法是,會找到父類,當然也就是返回的父類  validate物件了, 那麼子類中的方法當然也就失效了

tp5 validate驗證規則

use think validate 驗證某個字段必須 name require 驗證某個欄位的值是否為純數字 採用ctype digit驗證,不包含負數和小數點 num number 驗證某個欄位的值是否為整數 採用filter var驗證 num integer 驗證某個欄位的值是否為浮點數字 ...

redis型別 tp5 TP5使用redis

window 下安裝 首先我們先去配置config.php cache 驅動方式 type file 快取儲存目錄 path cache path,快取字首 prefix 快取有效期 0表示永久快取 expire 0,如果是多模組寫在那個模組要用的config 如果但模組也放這裡 return ar...

TP框架中的自動驗證功能 validate

thinkphp 中 validate 關鍵字是在模型中定義的自動驗證資料的功能。驗證的規則可以是進行資料型別 業務規則 安全判斷等方面的驗證操作。資料驗證有兩種方式 靜態方式 在模型類裡面通過 validate屬性定義驗證規則。動態方式 使用模型類的validate方法動態建立自動驗證規則。無論是...