1. 程式人生 > >thinkphp create方法 用法 詳解

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是一個用來處理請求地址映射的註解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。