tp中讓頭疼似懂非懂的create

項目中多次用到create() 只能它是表單驗證,不過好出錯,痛下心扉好好了解理解它的來龍去脈和所用的用法

一:通過create() 方法或者 賦值的方法生成數據對象,然後寫入數據庫

$model = D('User');
 $model->create();  //略過具體的自動生成和驗證判斷
 $model->add()


  1:create()方法還支持其他方式創建數據對象:如,其他的數據對象或者數組

   

$data['name'] = 'Mike'; 2 $data['sex'] = 'male'; 3 $user->create($data);

 

  2: 創建完成的數據可以直接讀取和修改

  3: create的第二個操作方法可以指定創建數據的操作狀態,默認是自動判斷是寫入還是更新操作

  4: 如果沒有定義自動驗證的話,create方法返回值是創建完成的數據對象數組

  5:create方法創建的數據對象時保存在內存中,並沒有實際寫入到數據庫中,直到使用add或則save方法纔會真正寫入到數據庫

二:用於寫入:field()和create()結合使用,檢測字段的合法性(表單提交)

 $model->field('title,email,content')->create(); 

    合法字段只有title,email,content,無論用戶通過什麼手段添加其他字段都會屏蔽掉。

三:自動驗證,是模型層提供的一種數據驗證方法,create創建數據對象的時候自動進行數據驗證:具體分爲靜態和動態方式

 

四:create() 在創建數據對象的同時,完成一系列的工作,工作流程

        步驟                                            說明                                                  返回          
1 獲取數據源(默認是POST數組)  
2 驗證數據源合法性(非數組或者對象會過濾) 失敗返回false
3 檢查字段映射  
4 判斷數據狀態(新增或者編輯,指定或者自動判斷)  
5 數據自動驗證 失敗返回false
6 表單令牌驗證 失敗返回false
7 表單數據賦值(過濾非法字段和字符串處理)  
8 數據自動完成  
9 生成數據對象(保存在內存)  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章