thinkphp create方法 用法 詳解
首先明白create方法的用處,是入庫前對資料的處理。
直接上create方法的例項:
// 例項化User模型
$User = M('User');
// 根據表單提交的POST資料建立資料物件
$User->create();
// 把建立的資料物件寫入資料庫
$User->add();
三行程式碼就可以完成入庫操作。
其中create預設的是提取post的資料,如果要對指定資料進行處理:
$data['name'] = 'ThinkPHP'; $data['email'] = '[email protected]'; $User->create($data);
create方法的工作流程:
1.獲取資料來源(預設是POST陣列)
2.驗證資料來源合法性(非陣列或者物件會過濾)
3.檢查欄位對映
4.判斷提交狀態(新增或者編輯 根據主鍵自動判斷)
5.資料自動驗證
6.表單令牌驗證
7.表單資料賦值(過濾非法欄位和字串處理)
8.資料自動完成
9.生成資料物件(儲存在記憶體)
create方法能自動識別是新增或修改,判斷方法就是根據提交的資料是否有表主鍵,所以可以靈活運用這一點,比如下面例子:
public function save(){ $users = D('users'); if(!$users -> create()){ // 如果建立失敗 表示驗證沒有通過 輸出錯誤提示資訊 $this->error($users ->getError()); }else{ if(I('post.id')){ $users -> save(); $this->success('修改成功',U('index')); }else{ $users -> add(); $this->success('新增成功',U('index')); } } }
相關推薦
thinkphp create方法 用法 詳解
首先明白create方法的用處,是入庫前對資料的處理。 直接上create方法的例項: // 例項化User模型 $User = M('User'); // 根據表單提交的POST資料建立資料物件 $User->create(); // 把建立的資料物件寫入資料
getString()方法用法詳解
String getString(int columnIndex) 以 Java 程式語言中 String 的形式獲取此 ResultSet 物件的當前行中指定列的值。 getString String getString(int columnIn
Python數據類型方法簡介一————字符串的用法詳解
python 字符串連接 字符串用法 符串是Python中的重要的數據類型之一,並且字符串是不可修改的。 字符串就是引號(單、雙和三引號)之間的字符集合。(字符串必須在引號之內,引號必須成對)註:單、雙和三引號在使用上並無太大的區別; 引號之間可以采取交叉使用的方式避免過多轉義;
ThinkPHP 緩存技術詳解 使用大S方法
sqlite 前臺 thum port class 比較 pac 周期性 百萬 如果沒有緩存的網站是百萬級或者千萬級的訪問量,會給數據庫或者服務器造成很大的壓力,通過緩存,大幅減少服務器和數據庫的負荷,假如我們把讀取數據的過程分為三個層,第一個是訪問層,第一個是緩存層
java.nio.Buffer.filp()方法的用法詳解
今天在看《Java程式設計思想》的時候,碰到java.nio.Buffer flip()方法,不明白是幹什麼用的,於是就趕快檢視中文API,API上面翻譯的是:"反轉此緩衝區。首先對當前位置設定限制,然後將該位置設定為零。如果已定義了標記,則丟棄該標記。"; 說實話,看了幾遍,真
String用法詳解(equal原始碼 ==和equal的解釋、字面賦值和new賦值效率、重寫了hashcode的方法解釋)
String a = “abc”;//在字串池中找abc,如果有,就直接返回地址,如果沒有就加值abc然後再返回地址(此方式的值是存放在字串池中) String b = “abc”; String c = new String("abc");//在字串池中找a
ThinkPHP模板IF標籤用法詳解
ThinkPHP的IF標籤可以用來定義複雜的條件判斷,例如: <if condition="($name eq 1) OR ($name gt 100) "> value1 <elseif condition="$name eq 2" /
thinkphp框架中jquery $.post()用法詳解
8描述: 獲得 test.php 頁面返回的 json 格式的內容:: jQuery 程式碼: $.post("test.php", { "func": "getNameAndTime" }, function(data){ alert(data.nam
JavaScript中return的用法詳解
style 返回 www log tle blog 意思 charset fun 1、定義:return 從字面上的看就是返回,官方定義return語句將終止當前函數並返回當前函數的值,可以看下下面的示例代碼: <!DOCTYPE html><html l
解決ajax跨域的方法原理詳解之Cors方法
詳細 不同 htm 渲染 jsonp del 需要 methods href 1、神馬是跨域(Cross Domain) 對於端口和協議的不同,只能通過後臺來解決。 一句話:同一個ip、同一個網絡協議、同一個端口,三者都滿足就是同一個域,否則就是 跨域問題了。而為
SVN trunk(主線) branch(分支) tag(標記) 用法詳解和詳細操作步驟
trac load mar span 必須 最可 objc copy 右鍵 原文地址:http://blog.csdn.net/vbirdbest/article/details/51122637 使用場景: 假如你的項目(這裏指的是手機客戶端項目)的某個版本(例如1.0
js 定時器用法詳解——setTimeout()、setInterval()、clearTimeout()、clearInterval()
ntb 幫助 .get tint num 用法 -c 函數 tel 在js應用中,定時器的作用就是可以設定當到達一個時間來執行一個函數,或者每隔幾秒重復執行某段函數。這裏面涉及到了三個函數方法:setInterval()、setTimeout()、clearI
selenium用法詳解
key url enc element api code 需要 int question selenium用法詳解 selenium主要是用來做自動化測試,支持多種瀏覽器,爬蟲中主要用來解決JavaScript渲染問題。 模擬瀏覽器進行網頁加載,當requests,url
C# ListView用法詳解
ont 結束 server 發生 匹配 鼠標 之前 小圖標 order 一、ListView類 1、常用的基本屬性: (1)FullRowSelect:設置是否行選擇模式。(默認為false) 提示:只有在Details視圖該屬性才有意義
linux cp命令參數及用法詳解---linux 復制文件命令cp
linux file linux cp命令參數及用法詳解---linux 復制文件命令cp [root@Linux ~]# cp [-adfilprsu] 來源檔(source) 目的檔(destination)[root@linux
C# ListView用法詳解(轉)
分組 創建 cti 排列 checkbox 定義 com 程序 erl 一、ListView類 1、常用的基本屬性: (1)FullRowSelect:設置是否行選擇模式。(默認為false) 提示:只有在Details視圖該屬性才有
java中的instanceof用法詳解
定義 xtend print 繼承 interface 參數 保留 如果 ack instanceof是Java的一個二元操作符(運算符),也是Java的保留關鍵字。它的作用是判斷其左邊對象是否為其右邊類的實例,返回的是boolean類型的數據。用它來判斷某個對象是否是
js中幾種實用的跨域方法原理詳解
自身 標簽 cdc 返回 屬性和方法 插入 實用 封裝 判斷 這裏說的js跨域是指通過js在不同的域之間進行數據傳輸或通信,比如用ajax向一個不同的域請求數據,或者通過js獲取頁面中不同域的框架中(iframe)的數據。只要協議、域名、端口有任何一個不同, 都被當作是不同
Mvc 提交表單的4種方法全程詳解
c4346 數字 parameter words 代碼 help pro reat src 一,MVC HtmlHelper方法 Html.BeginForm(actionName,controllerName,method,htmlAttributes){}
@RequestMapping 用法詳解
同時 get() turn example track find 說明 tex -h 簡介: @RequestMapping RequestMapping是一個用來處理請求地址映射的註解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。