thinkPHP使用中踩的坑,記錄一下(不停更)
阿新 • • 發佈:2017-10-30
切換 合法性 問題 table 字符串 mode true use data
版本3.2.3
1、數據庫操作中的連貫操作table(),在查詢的時候可以切換表,但是在插入,更新的時候請不要使用。例如
D(‘user‘)->table(‘auth‘)->add($data);
操作會出問題,因為插入的時候會把非user表的字段刪除
2.數據庫操作的create(),如果使用了框架的自動驗證功能,在create()時會驗證字段的合法性,有時候我們會多次create,進行批量添加或者修改,這時候會出問題。查看源碼,發現是因為裏面的$error屬性沒有重置。設置Model的$patchValidate為true是一種辦法,但是會導致返回的錯誤不再是一個字符串,而是數組,並且即使已經有不合法的字段了,還是會繼續驗證其他字段,解決辦法是
//重寫create方法,每次create,清空error public function create($data = ‘‘, $type = ‘‘) { $this->error = array(); return parent::create($data, $type); // TODO: Change the autogenerated stub }
thinkPHP使用中踩的坑,記錄一下(不停更)