php yanzhengm,ThinkPHP 在使用M方法(不创建模型类)时实现自动验证与自动填充
ThinkPHP M方法實現自動驗證與自動填充
通常,我們會將自動驗證與自動填充規則寫入模型類里,然后再用 D 方法實例化模型類來實現對表單的自動驗證與自動填充功能。由于 M 方法只是實例化基礎模型類而不會去實現模型類里定義的邏輯,因此 M 方法一般情況下是無法完成自動驗證與自動填充的。
ThinkPHP 提供的 setProperty 方法,可以動態更改 Model 的屬性。在操作中,利用 setProperty 方法便可以在使用 M 方法(不創建模型類)時實現自動驗證與自動填充功能。
setProperty 方法是 Model 類的內置方法,用于設置模型的屬性值,語法如下:
setProperty(string name, mixed value)
例子:
$Article = M("Article");
// 自動驗證規則
$validate = array(
array('title','require','標題不能為空!',1),
array('title','','標題已經存在',0,'unique',1),
array('content','require','內容必須',1),
);
// 自動填充規則
$_auto = array(
// 新增癿時候把 status 字段設置為 1
array('status','1',self::MODEL_INSERT),
// 新增癿時候把 create_time 字段設置為 time() 時間戳
array('create_time','time',self::MODEL_INSERT,'function'),
);
$Article->setProperty("_validate",$validate);
$Article->setProperty('_auto',$auto);
// 創建數據對象
if ($Article->create()){
// 創建數據對象成功,寫入數據
$User->add();
}else{
// 創建數據對象失敗
exit($Article->getError());
}
要在 M 方法中使用自動驗證與自動填充,需要以數據對象的方式(create())寫入數據,更多信息參見《ThinkPHP create 方法:表單數據智能寫入》。
原則上講,應該將自動驗證與自動填充等邏輯在模型里面來完成,但 ThinkPHP 提供了 setProperty 方法,以方便在其他特殊情況(如使用 M 方法時)時也能實現自動驗證與自動填充功能。
總結
以上是生活随笔為你收集整理的php yanzhengm,ThinkPHP 在使用M方法(不创建模型类)时实现自动验证与自动填充的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle元数据存储在表空间,orac
- 下一篇: c语言调用oracle函数返回值吗,C语