完成基本的模型定義后,我們就可以進行基礎的模型操作了,我們來領略下模型的對象化操作的魅力,主要內容包含:
- - [新增數據](http://www.hmoore.net/thinkphp/thinkphp5_quickstart/147285#u65B0u589Eu6570u636E)
- [批量新增](http://www.hmoore.net/thinkphp/thinkphp5_quickstart/147285#u6279u91CFu65B0u589E)
- [查詢數據](http://www.hmoore.net/thinkphp/thinkphp5_quickstart/147285#u67E5u8BE2u6570u636E)
- [數據列表](http://www.hmoore.net/thinkphp/thinkphp5_quickstart/147285#u6570u636Eu5217u8868)
- [更新數據](http://www.hmoore.net/thinkphp/thinkphp5_quickstart/147285#u66F4u65B0u6570u636E)
- [刪除數據](http://www.hmoore.net/thinkphp/thinkphp5_quickstart/147285#u5220u9664u6570u636E)
## 新增數據
我們先來看下如何寫入模型數據,創建一個`User`控制器并增加`add`操作方法如下:
```
<pre class="calibre18">
```
<span class="hljs-operator"><span class="hljs-number"><?php</span><span class="hljs-keyword">namespace</span> <span class="hljs-title">app</span>\<span class="hljs-title">index</span>\<span class="hljs-title">controller</span>;
<span class="hljs-keyword">use</span> <span class="hljs-title">app</span>\<span class="hljs-title">index</span>\<span class="hljs-title">model</span>\<span class="hljs-title">User</span> <span class="hljs-title">as</span> <span class="hljs-title">UserModel</span>;
<span class="hljs-operator"><span class="hljs-keyword">class</span> <span class="hljs-title">User</span></span>{
<span class="hljs-comment">// 新增用戶數據</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">add</span><span class="hljs-number">()</span></span>{
<span class="hljs-regexp">$user</span> = <span class="hljs-keyword">new</span> UserModel;
<span class="hljs-regexp">$user</span>->nickname = <span class="hljs-string">'流年'</span>;
<span class="hljs-regexp">$user</span>->email = <span class="hljs-string">'thinkphp@qq.com'</span>;
<span class="hljs-regexp">$user</span>->birthday = strtotime(<span class="hljs-string">'1977-03-05'</span>);
<span class="hljs-keyword">if</span> (<span class="hljs-regexp">$user</span>->save()) {
<span class="hljs-keyword">return</span> <span class="hljs-string">'用戶[ '</span> . <span class="hljs-regexp">$user</span>->nickname . <span class="hljs-string">':'</span> . <span class="hljs-regexp">$user</span>->id . <span class="hljs-string">' ]新增成功'</span>;
} <span class="hljs-keyword">else</span> {
<span class="hljs-keyword">return</span> <span class="hljs-regexp">$user</span>->getError();
}
}
}</span>
```
```
> ### 提示:
>
> - - - - - -
>
> 在當前文件中給`app\index\model\User`模型定義了一個別名`UserModel`是為了避免和當前的`app\index\controller\User`產生沖突,如果你當前的控制器類不是`User`的話可以不需要定義`UserModel`別名。
有一種方式可以讓你省去別名定義,系統支持統一對控制器類添加`Controller`后綴,修改配置參數:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 是否啟用控制器類后綴</span><span class="hljs-string">'controller_suffix'</span> => <span class="hljs-keyword">true</span>,
```
```
然后,控制器類文件改為`UserController.php`,并且修改控制器類的定義如下:
```
<pre class="calibre18">
```
<span class="hljs-operator"><span class="hljs-number"><?php</span><span class="hljs-keyword">namespace</span> <span class="hljs-title">app</span>\<span class="hljs-title">index</span>\<span class="hljs-title">controller</span>;
<span class="hljs-keyword">use</span> <span class="hljs-title">app</span>\<span class="hljs-title">index</span>\<span class="hljs-title">model</span>\<span class="hljs-title">User</span>;
<span class="hljs-operator"><span class="hljs-keyword">class</span> <span class="hljs-title">UserController</span></span>{
<span class="hljs-comment">// 新增用戶數據</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">add</span><span class="hljs-number">()</span></span>{
<span class="hljs-regexp">$user</span> = <span class="hljs-keyword">new</span> User;
<span class="hljs-regexp">$user</span>->nickname = <span class="hljs-string">'流年'</span>;
<span class="hljs-regexp">$user</span>->email = <span class="hljs-string">'thinkphp@qq.com'</span>;
<span class="hljs-regexp">$user</span>->birthday = strtotime(<span class="hljs-string">'1977-03-05'</span>);
<span class="hljs-keyword">if</span> (<span class="hljs-regexp">$user</span>->save()) {
<span class="hljs-keyword">return</span> <span class="hljs-string">'用戶[ '</span> . <span class="hljs-regexp">$user</span>->nickname . <span class="hljs-string">':'</span> . <span class="hljs-regexp">$user</span>->id . <span class="hljs-string">' ]新增成功'</span>;
} <span class="hljs-keyword">else</span> {
<span class="hljs-keyword">return</span> <span class="hljs-regexp">$user</span>->getError();
}
}
}</span>
```
```
接下來,我們訪問
```
<pre class="calibre18">
```
http://tp5.com/<span class="hljs-operator">user</span>/<span class="hljs-operator">add</span>
```
```
如果看到輸出
```
<pre class="calibre18">
```
用戶<span class="hljs-operator">[ 流年:1 ]</span>新增成功
```
```
表示用戶模型寫入成功了。
默認情況下,實例化模型類后執行`save`操作都是執行的數據庫`insert`操作,如果你需要實例化執行`save`執行數據庫的`update`操作,請確保在save方法之前調用`isUpdate`方法:
```
<pre class="calibre18">
```
<span class="hljs-regexp">$user</span>->isUpdate()->save();
```
```
如果你覺得上面的方式給`User`對象一個個賦值太麻煩,可以改為下面的方式:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 新增用戶數據</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">add</span><span class="hljs-number">()</span></span>{
<span class="hljs-regexp">$user</span>[<span class="hljs-string">'nickname'</span>] = <span class="hljs-string">'看云'</span>;
<span class="hljs-regexp">$user</span>[<span class="hljs-string">'email'</span>] = <span class="hljs-string">'kancloud@qq.com'</span>;
<span class="hljs-regexp">$user</span>[<span class="hljs-string">'birthday'</span>] = strtotime(<span class="hljs-string">'2015-04-02'</span>);
<span class="hljs-keyword">if</span> (<span class="hljs-regexp">$result</span> = UserModel::create(<span class="hljs-regexp">$user</span>)) {
<span class="hljs-keyword">return</span> <span class="hljs-string">'用戶[ '</span> . <span class="hljs-regexp">$result</span>->nickname . <span class="hljs-string">':'</span> . <span class="hljs-regexp">$result</span>->id . <span class="hljs-string">' ]新增成功'</span>;
} <span class="hljs-keyword">else</span> {
<span class="hljs-keyword">return</span> <span class="hljs-string">'新增出錯'</span>;
}
}
```
```
`create`方法可以傳入數組或者標準對象,你可以在外部統一賦值后傳入,當然也可以直接傳入表單數據(我們后面會有專門的描述)。
我們刷新剛才的訪問地址后,頁面輸出結果為:
```
<pre class="calibre18">
```
用戶<span class="hljs-operator">[ 看云:2 ]</span>新增成功
```
```
## 批量新增
也可以直接進行數據的批量新增,給控制器添加如下`addList`操作方法:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 批量新增用戶數據</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">addList</span><span class="hljs-number">()</span></span>{
<span class="hljs-regexp">$user</span> = <span class="hljs-keyword">new</span> UserModel;
<span class="hljs-regexp">$list</span> = [
[<span class="hljs-string">'nickname'</span> => <span class="hljs-string">'張三'</span>, <span class="hljs-string">'email'</span> => <span class="hljs-string">'zhanghsan@qq.com'</span>, <span class="hljs-string">'birthday'</span> => strtotime(<span class="hljs-string">'1988-01-15'</span>)],
[<span class="hljs-string">'nickname'</span> => <span class="hljs-string">'李四'</span>, <span class="hljs-string">'email'</span> => <span class="hljs-string">'lisi@qq.com'</span>, <span class="hljs-string">'birthday'</span> => strtotime(<span class="hljs-string">'1990-09-19'</span>)],
];
<span class="hljs-keyword">if</span> (<span class="hljs-regexp">$user</span>->saveAll(<span class="hljs-regexp">$list</span>)) {
<span class="hljs-keyword">return</span> <span class="hljs-string">'用戶批量新增成功'</span>;
} <span class="hljs-keyword">else</span> {
<span class="hljs-keyword">return</span> <span class="hljs-regexp">$user</span>->getError();
}
}
```
```
訪問URL地址
```
<pre class="calibre18">
```
<span class="hljs-string">http:</span>
<span class="hljs-comment">//tp5.com/user/add_list</span>
```
```
最后的輸出結果為:
```
<pre class="calibre18">
```
用戶批量新增成功
```
```
## 查詢數據
接下來添加`User`模型的查詢功能,給`User`控制器增加如下`read`操作方法:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 讀取用戶數據</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">read</span><span class="hljs-number">(<span class="hljs-regexp">$id</span>=<span class="hljs-string">''</span>)</span></span>{
<span class="hljs-regexp">$user</span> = UserModel::get(<span class="hljs-regexp">$id</span>);
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->nickname . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->email . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> date(<span class="hljs-string">'Y/m/d'</span>, <span class="hljs-regexp">$user</span>->birthday) . <span class="hljs-string">'<br/>'</span>;
}
```
```
模型的`get`方法用于獲取數據表的數據并返回當前的模型對象實例,通常只需要傳入主鍵作為參數,如果沒有傳入任何值的話,則表示獲取第一條數據。
訪問如下URL地址
```
<pre class="calibre18">
```
<span class="hljs-string">http:</span>
<span class="hljs-comment">//tp5.com/user/1</span>
```
```
輸出結果是:
```
<pre class="calibre18">
```
流年
thinkphp@qq.com
<span class="hljs-number">1977</span>/<span class="hljs-number">03</span>/<span class="hljs-number">05</span>
```
```
訪問如下URL地址
```
<pre class="calibre18">
```
<span class="hljs-string">http:</span>
<span class="hljs-comment">//tp5.com/user/2</span>
```
```
輸出結果是:
```
<pre class="calibre18">
```
看云
kancloud@qq.com
<span class="hljs-number">2016</span>/<span class="hljs-number">04</span>/<span class="hljs-number">02</span>
```
```
模型的`get`方法和`Db`類的`find`方法返回結果的區別在于,`Db`類默認返回的只是數組(注意這里說的默認,其實仍然可以設置為對象),而模型的`get`方法查詢返回的一定是當前的模型對象實例。
但是系統為模型實現了`ArrayAccess`接口,因此仍然可以通過數組的方式訪問對象實例,把控制器的`read`操作方法改成如下:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 讀取用戶數據</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">read</span><span class="hljs-number">(<span class="hljs-regexp">$id</span> = <span class="hljs-string">''</span>)</span></span>{
<span class="hljs-regexp">$user</span> = UserModel::get(<span class="hljs-regexp">$id</span>);
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>[<span class="hljs-string">'nickname'</span>] . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>[<span class="hljs-string">'email'</span>] . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> date(<span class="hljs-string">'Y/m/d'</span>, <span class="hljs-regexp">$user</span>[<span class="hljs-string">'birthday'</span>]) . <span class="hljs-string">'<br/>'</span>;
}
```
```
再次訪問URL地址
```
<pre class="calibre18">
```
<span class="hljs-string">http:</span>
<span class="hljs-comment">//tp5.com/user/1</span>
```
```
不但沒有報錯,而且最終的輸出結果和之前是一樣的:
```
<pre class="calibre18">
```
流年
thinkphp@qq.com
<span class="hljs-number">1977</span>/<span class="hljs-number">03</span>/<span class="hljs-number">05</span>
```
```
如果我想通過用戶的`email`來查詢模型數據的話,應該如何操作呢?
下面是一個查詢的例子:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 根據email讀取用戶數據</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">read</span><span class="hljs-number">()</span></span>{
<span class="hljs-regexp">$user</span> = UserModel::getByEmail(<span class="hljs-string">'thinkphp@qq.com'</span>);
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->nickname . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->email . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> date(<span class="hljs-string">'Y/m/d'</span>, <span class="hljs-regexp">$user</span>->birthday) . <span class="hljs-string">'<br/>'</span>;
}
```
```
輸出的結果是:
```
<pre class="calibre18">
```
流年
thinkphp@qq.com
<span class="hljs-number">1977</span>/<span class="hljs-number">03</span>/<span class="hljs-number">05</span>
```
```
如果不是根據主鍵查詢的話,可以傳入數組作為查詢條件,例如:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 根據nickname讀取用戶數據</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">read</span><span class="hljs-number">()</span></span>{
<span class="hljs-regexp">$user</span> = UserModel::get([<span class="hljs-string">'nickname'</span>=><span class="hljs-string">'流年'</span>]);
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->nickname . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->email . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> date(<span class="hljs-string">'Y/m/d'</span>, <span class="hljs-regexp">$user</span>->birthday) . <span class="hljs-string">'<br/>'</span>;
}
```
```
更復雜的查詢則可以使用查詢構建器來完成,例如:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 根據nickname讀取用戶數據</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">read</span><span class="hljs-number">()</span></span>{
<span class="hljs-regexp">$user</span> = UserModel::where(<span class="hljs-string">'nickname'</span>, <span class="hljs-string">'流年'</span>)->find();
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->nickname . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->email . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> date(<span class="hljs-string">'Y/m/d'</span>, <span class="hljs-regexp">$user</span>->birthday) . <span class="hljs-string">'<br/>'</span>;
}
```
```
## 數據列表
如果要查詢多個數據,可以使用模型的`all`方法,我們在控制器中添加index操作方法用于獲取用戶列表:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 獲取用戶數據列表</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">index</span><span class="hljs-number">()</span></span>{
<span class="hljs-regexp">$list</span> = UserModel::all();
<span class="hljs-keyword">foreach</span> (<span class="hljs-regexp">$list</span> <span class="hljs-keyword">as</span> <span class="hljs-regexp">$user</span>) {
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->nickname . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->email . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> date(<span class="hljs-string">'Y/m/d'</span>, <span class="hljs-regexp">$user</span>->birthday) . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> <span class="hljs-string">'----------------------------------<br/>'</span>;
}
}
```
```
然后訪問
```
<pre class="calibre18">
```
<span class="hljs-string">http:</span>
<span class="hljs-comment">//tp5.com/user/index</span>
```
```
就可以看到輸出結果為:
```
<pre class="calibre18">
```
流年
thinkphp@qq.com
<span class="hljs-number">1977</span>/<span class="hljs-number">03</span>/<span class="hljs-number">05</span>
-------------------------------------
看云
kancloud@qq.com
<span class="hljs-number">2015</span>/<span class="hljs-number">04</span>/<span class="hljs-number">02</span>
-------------------------------------
張三
zhanghsan@qq.com
<span class="hljs-number">1988</span>/<span class="hljs-number">01</span>/<span class="hljs-number">15</span>
-------------------------------------
李四
lisi@qq.com
<span class="hljs-number">1990</span>/<span class="hljs-number">09</span>/<span class="hljs-number">19</span>
-------------------------------------
```
```
如果不是使用主鍵查詢,可以直接傳入數組條件查詢,例如:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 獲取用戶數據列表</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">index</span><span class="hljs-number">()</span></span>{
<span class="hljs-regexp">$list</span> = UserModel::all([<span class="hljs-string">'status'</span>=><span class="hljs-number">1</span>]);
<span class="hljs-keyword">foreach</span> (<span class="hljs-regexp">$list</span> <span class="hljs-keyword">as</span> <span class="hljs-regexp">$user</span>) {
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->nickname . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->email . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> date(<span class="hljs-string">'Y/m/d'</span>, <span class="hljs-regexp">$user</span>->birthday) . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> <span class="hljs-string">'----------------------------------<br/>'</span>;
}
}
```
```
我們也可以使用數據庫的查詢構建器完成更多的條件查詢,例如:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 獲取用戶數據列表</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">index</span><span class="hljs-number">()</span></span>{
<span class="hljs-regexp">$list</span> = UserModel::where(<span class="hljs-string">'id'</span>,<span class="hljs-string">'<'</span>,<span class="hljs-number">3</span>)->select();
<span class="hljs-keyword">foreach</span> (<span class="hljs-regexp">$list</span> <span class="hljs-keyword">as</span> <span class="hljs-regexp">$user</span>) {
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->nickname . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> <span class="hljs-regexp">$user</span>->email . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> date(<span class="hljs-string">'Y/m/d'</span>, <span class="hljs-regexp">$user</span>->birthday) . <span class="hljs-string">'<br/>'</span>;
<span class="hljs-keyword">echo</span> <span class="hljs-string">'----------------------------------<br/>'</span>;
}
}
```
```
刷新頁面訪問輸出的結果是:
```
<pre class="calibre18">
```
流年
thinkphp@qq.com
<span class="hljs-number">1977</span>/<span class="hljs-number">03</span>/<span class="hljs-number">05</span>
-------------------------------------
看云
kancloud@qq.com
<span class="hljs-number">2015</span>/<span class="hljs-number">04</span>/<span class="hljs-number">02</span>
-------------------------------------
```
```
## 更新數據
我們可以對查詢出來的數據進行更新操作,下面添加一個`update`操作方法:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 更新用戶數據</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">update</span><span class="hljs-number">(<span class="hljs-regexp">$id</span>)</span></span>{
<span class="hljs-regexp">$user</span> = UserModel::get(<span class="hljs-regexp">$id</span>);
<span class="hljs-regexp">$user</span>->nickname = <span class="hljs-string">'劉晨'</span>;
<span class="hljs-regexp">$user</span>->email = <span class="hljs-string">'liu21st@gmail.com'</span>;
<span class="hljs-keyword">if</span> (<span class="hljs-keyword">false</span> !== <span class="hljs-regexp">$user</span>->save()) {
<span class="hljs-keyword">return</span> <span class="hljs-string">'更新用戶成功'</span>;
} <span class="hljs-keyword">else</span> {
<span class="hljs-keyword">return</span> <span class="hljs-regexp">$user</span>->getError();
}
}
```
```
訪問下面的URL地址
```
<pre class="calibre18">
```
<span class="hljs-string">http:</span>
<span class="hljs-comment">//tp5.com/user/update/1</span>
```
```
會輸出
```
<pre class="calibre18">
```
更新用戶成功
```
```
然后我們再次訪問
```
<pre class="calibre18">
```
<span class="hljs-string">http:</span>
<span class="hljs-comment">//tp5.com/user/1</span>
```
```
會看到輸出結果變成:
```
<pre class="calibre18">
```
劉晨
liu21st@gmail.com
<span class="hljs-number">1977</span>/<span class="hljs-number">03</span>/<span class="hljs-number">05</span>
```
```
說明我們的更新操作已經生效了。
默認情況下,查詢模型數據后返回的模型示例執行`save`操作都是執行的數據庫`update`操作,如果你需要實例化執行`save`執行數據庫的`insert`操作,請確保在save方法之前調用`isUpdate`方法:
```
<pre class="calibre18">
```
<span class="hljs-regexp">$user</span>->isUpdate(<span class="hljs-keyword">false</span>)->save();
```
```
`ActiveRecord`模式的更新數據方式需要首先讀取對應的數據,如果需要更高效的方法可以把update方法改成:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 更新用戶數據</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">update</span><span class="hljs-number">(<span class="hljs-regexp">$id</span>)</span></span>{
<span class="hljs-regexp">$user</span>[<span class="hljs-string">'id'</span>] = (int) <span class="hljs-regexp">$id</span>;
<span class="hljs-regexp">$user</span>[<span class="hljs-string">'nickname'</span>] = <span class="hljs-string">'劉晨'</span>;
<span class="hljs-regexp">$user</span>[<span class="hljs-string">'email'</span>] = <span class="hljs-string">'liu21st@gmail.com'</span>;
<span class="hljs-regexp">$result</span> = UserModel::update(<span class="hljs-regexp">$user</span>);
<span class="hljs-keyword">if</span> (<span class="hljs-keyword">false</span> !== <span class="hljs-regexp">$result</span>) {
<span class="hljs-keyword">return</span> <span class="hljs-string">'更新用戶成功'</span>;
} <span class="hljs-keyword">else</span> {
<span class="hljs-keyword">return</span> <span class="hljs-regexp">$user</span>->getError();
}
}
```
```
## 刪除數據
我們給User控制器添加delete方法用于刪除用戶。
```
<pre class="calibre18">
```
<span class="hljs-comment">// 刪除用戶數據</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">delete</span><span class="hljs-number">(<span class="hljs-regexp">$id</span>)</span></span>{
<span class="hljs-regexp">$user</span> = UserModel::get(<span class="hljs-regexp">$id</span>);
<span class="hljs-keyword">if</span> (<span class="hljs-regexp">$user</span>) {
<span class="hljs-regexp">$user</span>->delete();
<span class="hljs-keyword">return</span> <span class="hljs-string">'刪除用戶成功'</span>;
} <span class="hljs-keyword">else</span> {
<span class="hljs-keyword">return</span> <span class="hljs-string">'刪除的用戶不存在'</span>;
}
}
```
```
然后訪問
```
<pre class="calibre18">
```
<span class="hljs-string">http:</span>
<span class="hljs-comment">//tp5.com/user/delete/1</span>
```
```
輸出結果為:
```
<pre class="calibre18">
```
刪除用戶成功
```
```
如果刷新頁面后輸出結果為:
```
<pre class="calibre18">
```
刪除的用戶不存在
```
```
同樣我們也可以直接使用`destroy`方法刪除模型數據,例如把上面的`delete`方法改成如下:
```
<pre class="calibre18">
```
<span class="hljs-comment">// 刪除用戶數據</span><span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">delete</span><span class="hljs-number">(<span class="hljs-regexp">$id</span>)</span></span>{
<span class="hljs-regexp">$result</span> = UserModel::destroy(<span class="hljs-regexp">$id</span>);
<span class="hljs-keyword">if</span> (<span class="hljs-regexp">$result</span>) {
<span class="hljs-keyword">return</span> <span class="hljs-string">'刪除用戶成功'</span>;
} <span class="hljs-keyword">else</span> {
<span class="hljs-keyword">return</span> <span class="hljs-string">'刪除的用戶不存在'</span>;
}
}
```
```
目前為止,你已經掌握了最基本的模型操作,后面會引申一些高級的用法。
- 脕茫隆壟脨貌脩脭
- 脕茫隆壟脨貌脩脭
- 脪祿隆壟祿霉麓隆
- 脪祿隆壟祿霉麓隆
- 露鎂隆壟URL潞脥脗路脫脡
- 露鎂隆壟URL潞脥脗路脫脡
- 脠媒隆壟脟毛脟貿潞脥脧矛脫婁
- 脠媒隆壟脟毛脟貿潞脥脧矛脫婁
- 脣脛隆壟脢媒戮脻驢芒
- 脣脛隆壟脢媒戮脻驢芒
- 脦氓隆壟虜茅脩爐脫茂脩脭
- 脦氓隆壟虜茅脩爐脫茂脩脭
- 脕霉隆壟脛攏脨脥潞脥鹿脴脕陋
- 攏簍1攏漏脛攏脨脥露簍脪氓
- 攏簍2攏漏祿霉麓隆虜脵脳梅
- 攏簍3攏漏露脕脠隆脝梅潞脥脨脼賂脛脝梅
- 攏簍4攏漏脌脿脨脥脳陋祿祿潞脥脳脭露爐脥錨魯脡
- 攏簍5攏漏虜茅脩爐路露脦摟
- 攏簍6攏漏脢盲脠毛潞脥脩茅脰隴
- 攏簍7攏漏鹿脴脕陋
- 攏簍8攏漏脛攏脨脥脢盲魯枚
- 脝脽隆壟脢脫脥錄潞脥脛攏擄氓
- 脝脽隆壟脢脫脥錄潞脥脛攏擄氓
- 擄脣隆壟碌梅脢脭潞脥脠脮脰戮
- 擄脣隆壟碌梅脢脭潞脥脠脮脰戮
- 戮脜隆壟API驢陋路壟
- 戮脜隆壟API驢陋路壟
- 脢廬隆壟脙眉脕卯脨脨鹿隴戮脽
- 脢廬隆壟脙眉脕卯脨脨鹿隴戮脽
- 脢廬脪祿隆壟脌漏脮鹿
- 脢廬脪祿隆壟脌漏脮鹿
- 脢廬露鎂隆壟脭脫脧卯
- Cookie
- Session
- 碌樓脭陋虜芒脢脭
- 脥錄脧帽麓婁脌鉚
- 脦脛錄鎂脡脧麓蘆
- 脩茅脰隴脗毛
- 賂陸脗錄
- A隆壟魯攏錄沒脦脢脤芒錄爐
- B隆壟3.2潞脥5.0脟酶鹵冒
- C隆壟脰煤脢脰潞爐脢媒
- 路盧脥芒脝陋攏潞脩摟脧擄ThinkPHP5碌脛脮媒脠路脳脣脢脝
- 路盧脥芒脝陋攏潞脩摟脧擄ThinkPHP5碌脛脮媒脠路脳脣脢脝