項目中多次用到create() 只能它是表單驗證,不過好出錯,痛下心扉好好了解理解它的來龍去脈和所用的用法
一:通過create() 方法或者 賦值的方法生成數據對象,然後寫入數據庫
1 $model = D('User'); 2 $model->create(); //略過具體的自動生成和驗證判斷 3 $model->add()
1:create()方法還支持其他方式創建數據對象:如,其他的數據對象或者數組
1 $data['name'] = 'Mike'; 2 $data['sex'] = 'male'; 3 $user->create($data);
2: 創建完成的數據可以直接讀取和修改
3: create的第二個操作方法可以指定創建數據的操作狀態,默認是自動判斷是寫入還是更新操作
4: 如果沒有定義自動驗證的話,create方法返回值是創建完成的數據對象數組
5:create方法創建的數據對象時保存在內存中,並沒有實際寫入到數據庫中,直到使用add或則save方法才會真正寫入到數據庫
二:用於寫入:field()和create()結合使用,檢測字段的合法性(表單提交)
1 $model->field('title,email,content')->create();
合法字段只有title,email,content,無論用戶通過什麼手段添加其他字段都會屏蔽掉。
三:自動驗證,是模型層提供的一種數據驗證方法,create創建數據對象的時候自動進行數據驗證:具體分為靜態和動態方式
四:create() 在創建數據對象的同時,完成一系列的工作,工作流程
步驟 說明 返回 1 獲取數據源(默認是POST數組) 2 驗證數據源合法性(非數組或者對象會過濾) 失敗返回false 3 檢查字段映射 4 判斷數據狀態(新增或者編輯,指定或者自動判斷) 5 數據自動驗證 失敗返回false 6 表單令牌驗證 失敗返回false 7 表單數據賦值(過濾非法字段和字符串處理) 8 數據自動完成 9 生成數據對象(保存在內存)