這段時間做乙個專案:使用 thinkphp 做了乙個自動驗證,但是發現如果新增的時候,是能夠進行自動驗證的,但是在修改的修改的時候,會發現自動驗證會失效。
驗證的時候,模型是這樣寫的:
protected$_validate = array
(
array('title','require','標題不能為空!'),
array('title','','標題已經存在!',0,'unique',1),
array('name','/^[a-za-z]+$/','標識不是純英文',1),
array('name','require','標識不能為空!'),
array('name','','標識已經存在!',0,'unique',1),);
這樣寫:咋一看沒有問題。但是細看就會發現:在新增操作的時候,title會驗證唯一 / name 會驗證是英文和唯一。但是在修改操作的時候,就會發現他不會驗證唯一。也就是在修改的時候,可以修改成同樣的字段。
要想在新增和修改的時候都要驗證:
protected$_validate = array
(
array('title','require','標題不能為空!'),
array('title','','標題已經存在!',0,'unique'),
array('name','/^[a-za-z]+$/','標識不是純英文'),
array('name','require','標識不能為空!'),
array('name','','標識已經存在!',0,'unique'),);
thinkphp自動驗證無效的問題
新手入門thinkphp,試用自動驗證表單輸入資料功能,卻發現怎麼都不能呼叫自動驗證,自動驗證無效,原因竟是乙個小細節的疏忽,學習一定要細心啊!action方法 indexaction下的adds方法,d liuyan 獲取post提交過來的內容,create 方法建立資料物件,d方法建立了資料物件...
ThinkPHP 自動驗證
thinkphp 內建了資料物件的自動驗證功能來完成模型的業務規則驗證。自動驗證是基於資料物件的,而大多情況下資料物件是基於 post表單 不是絕對的 建立的。基本的自動驗證功能包括 必須字段 email郵箱格式 唯一性 url位址 數字 兩個字段是否相同 是否等於某個值等。要使用系統的自動驗證功能...
ThinkPHP自動驗證
array 驗證字段,驗證規則,錯誤提示,驗證條件,附加規則,驗證時間 1.驗證字段 需要驗證的表單字段名稱,這個欄位不一定是資料庫字段,也可以是表單的一些輔助字段,例如確認密碼和驗證碼等等。有個別驗證規則和字段無關的情況下,驗證欄位是可以隨意設定的,例如expire有效期規則是和表單字段無關的。2...