在3.1版本之前,如果需要設置自動驗證或者自動完成,一般來說必須定義在模型中,或者通過setProperty方法動態設置屬性來完成,缺點是不太方便動態改變和調整.
不過3.1版本在模型類中增加auto和validate兩個連貫操作,用于動態設置自動完成和自動驗證規則,現在可以在Action中使用:
- $validate = array(
- array('verify','require','驗證碼必須!'),
- array('name','','帳號名稱已經存在!',0,'unique',1),
- );
- $auto = array (
- array('password','md5',1,'function') ,
- array('create_time','time',2,'function'),
- );
- M('User')->auto($auto)->validate($validate)->create();
其中$auto和$validate變量的規范和模型類的_auto和_validate屬性的定義規則一致,而且還可以支持函數調用(由于PHP本身的限制,在類的屬性定義中不能調用函數).
auto和validate方法必須在create方法之前被調用.
通過這一改進,你完全可以通過M方法實例化模型類后使用動態設置完成自動驗證和自動完成操作,不必再依賴D方法了.
新聞熱點
疑難解答
圖片精選