在thinkphp中,create方法用於對POST提交的資料進行處理,利用表格中的欄位名稱與表單提交的名稱對應關係自動封裝資料實例,該方法可以對表單進行令牌驗證,放置表單重複提交。
本文操作環境:Windows10系統、ThinkPHP5版、Dell G3電腦。
1、create方法可以對POST提交的資料進行處理(透過表格中的欄位名稱與表單提交的名稱對應關係自動封裝資料實例),
例如user表中有一個欄位名叫"username",如果表單中有一個,那麼
$User = M('User'); $data = $User->create(); echo $data['username'];
就會輸出"小明",不用你用$_POST['username']去接收。
2、用create方法可以對表單進行令牌驗證,防止表單重複提交。
3、可以自動驗證資料,前提是你必須手動在Model資料夾中建立一個UserModel.class.php文件,在其中加入驗證規責
protected $_validate = array( array('username','require','用户名必须', 1), );
4、可以對欄位自動賦值,前提還是必須手動在Model資料夾中建立一個UserModel.class.php文件,在其中加入
protected $_auto = array( array('create_time','time',self::MODEL_INSERT,'function'), );
那麼user的註冊時間將自動賦值為目前時間
一般情況下,對於剛開始學的小白來說,向資料庫加入資料我們都會用一種中規中矩的方法:
就是透過$_POST去取得每一個表單值。這樣的方法有效率不太高。
但是thinkPHP給了我們create這個非常方便的方法。用這個方法之前,首先得先設定表單中的name的值要和資料欄位的值一致。
設定完成後,就可以在控制器中對應的方法寫程式碼啦。執行這句話的時候$data = $goods->create(),它會自動的取得表單的每一個值。就算你以後資料表要新增字段,也只需要在表單中增加對應的字段名稱既可以,可以說非常的方便。
if(IS_POST){ $goods = M('goods'); if($data = $goods->create()){ if($goods->add($data)){ $this->success('添加成功','show_list','2'); }else{ $this->error('添加失败'); }}}
create方法的特別還在一它可以將資料庫中沒有的欄位在陣列中移除。
例如,你資料庫中沒有aa欄位的,而你的表單中是有的,則在提交新增資料時,create方法會將它過濾掉。
推薦學習:《PHP影片教學》
以上是thinkphp中create方法怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!