<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                完成基本的模型定義后,我們就可以進行基礎的模型操作了,我們來領略下模型的對象化操作的魅力,主要內容包含: - - [新增數據](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>; } } ``` ``` 目前為止,你已經掌握了最基本的模型操作,后面會引申一些高級的用法。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看