|
以往在Thinkphp3.1版本之前,如果需要設(shè)置自動(dòng)驗(yàn)證或者自動(dòng)完成,一般來(lái)說(shuō)必須定義在模型中,或者通過(guò)setProperty方法動(dòng)態(tài)設(shè)置屬性來(lái)完成,這樣做的缺點(diǎn)是不太方便動(dòng)態(tài)改變和調(diào)整。
Thinkphp3.1版本在模型類中增加auto和validate兩個(gè)連貫操作,用于動(dòng)態(tài)設(shè)置自動(dòng)完成和自動(dòng)驗(yàn)證規(guī)則,現(xiàn)在可以在Action中使用:
$validate = array( array('verify','require','驗(yàn)證碼必須!'), array('name','','帳號(hào)名稱已經(jīng)存在!',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變量的規(guī)范和模型類的_auto和_validate屬性的定義規(guī)則一致,而且還可以支持函數(shù)調(diào)用(由于php本身的限制,在類的屬性定義中不能調(diào)用函數(shù))。
auto和validate方法必須在create方法之前被調(diào)用。
通過(guò)這一改進(jìn),你完全可以通過(guò)M方法實(shí)例化模型類后使用動(dòng)態(tài)設(shè)置完成自動(dòng)驗(yàn)證和自動(dòng)完成操作,不必再依賴D方法了。
php技術(shù):ThinkPHP3.1新特性之動(dòng)態(tài)設(shè)置自動(dòng)完成和自動(dòng)驗(yàn)證示例,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。