亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

thinkphp5框架如何通過模型進行增刪改查

發布時間:2021-07-20 08:08:53 來源:億速云 閱讀:208 作者:chen 欄目:編程語言

這篇文章主要介紹“thinkphp5框架如何通過模型進行增刪改查”,在日常操作中,相信很多人在thinkphp5框架如何通過模型進行增刪改查問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”thinkphp5框架如何通過模型進行增刪改查”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Thinkphp5增刪改查操作(通過模型進行增刪改查)

Thinkphp5怎么通過模型增刪改查,非常簡單。

首先在application\index\controller目錄下建立控制器,命名為:Index.php

Index.php 代碼如下,我這里是在application\index\controller 模塊下建立的控制器,如果不是index模塊,你的命名空間要改成自己模塊對應的命名空間。

<?php

namespace app\index\controller;

use app\index\model\Admin;

class Index
{
   public function index(){

     Admin::index();
    
   }
 
}

接著在application\index\model 目錄下建立模型 ,命名為Admin.php

Admin.php 代碼如下,我這里是在application\index\model 模塊下建立的模型,如果不是index模塊,你的命名空間要改成自己模塊對應的命名空間。

Admin.php (先講模型查詢操作)

<?php

namespace app\index\model;

use think\Model;

class Admin extends Model
{

     // 設置當前模型對應的完整數據表名稱

     protected $table = 'user';

     public static function index(){

        $list = '14';



       /* 單條數據查詢操作,all方法是tp5框架規定的查詢方法,all里面是一個閉包,作為變量傳入,

       不要糾結閉包構造,直接復制用即可,不需要關注$query是什么?框架內部實現時傳值進去,

       執行where方法,只需要關注where條件和傳的變量$list即可。

       $list值自己可定 如上面$list = 14,id可自己定,查詢id=14這一條數據 */

       $re = Admin::all(function($query) use ($list) {

          $query->where('id','=',$list);

       });

       //echo '<pre/>';var_dump($re[0]->data);

     }

}
<?php

namespace app\index\model;

use think\Model;

class Admin extends Model
{

    // 設置當前模型對應的完整數據表名稱
    protected $table = 'user';

    public static function index(){

      $list = ['13','14'];


      /* 這是多條查詢,查詢id=13和14這兩條數據,同上述只需要關注where里面的條件即可,

       如果查name或其它字段把where里的id改成name即可,$list也封裝好了,

       你可以傳值進去,就像我上面$list 等于一個數組,*/

       $re = Admin::all(function($query) use ($list) {

           $query->where('id','in',$list);

       });

       // echo '<pre/>';var_dump($re);

   }

}
<?php

namespace app\index\model;

use think\Model;

use think\Db;

class Admin extends Model
{

    public static function index()
    {

          /* join查詢,查詢兩個表以上的數據 Db::table 要加上use think\Db;

          這里查的是user表的id等于sessions表的id,兩個表里的符合條件的全部數據 */

          $re = Db::table('user')

          ->alias('a')

          ->join('sessions w','a.id = w.id')

          ->select();

          // var_dump($re);die;

     }

}
namespace app\index\model;

use think\Model;

use think\Db;

class Admin extends Model
{

  // 數據表名  這里要提一下,表名必須是完整的表名,要帶上表前綴,哪怕在配置文件里面設置了表前綴。
  protected $table = 'fa_kindex';

  // 查詢
  public static function index()
  {

      // 如果要查詢一張表中所有字段信息,直接寫個閉包在里面就可以了,
       $result = Index::select(

         function() {}

       );

       return $result;

       // 
       $offset = 0,
       $limit  = 1,

       $result = Index::select(

          // use()里面寫傳進閉包中的變量,如下面的 use ($offset , $limit)

		  function($query) use ($offset , $limit , $rid) {

              /* 閉包構造 $query可以銜接order,limit,where,field等條件。但不能寫成
                $query->select();因為這樣select方法會執行兩次 可以寫成
                $query->order('id','asc'),   //根據id升序查詢
                $query->limit($offset , $limit)   
                $query->field('id',true);   //查詢除id字段外的所有字段數據
                // 查詢符合id = 1的id,name字段的數據,查詢結果按id升序排列
                $query->field('id','name')->where('id=1')->order('id','asc');
                
              */
			   $query->order('id','asc')->limit($offset , $limit)->field('id',true)->where('rid ='.$rid);

			} 
		);
	   
	 return $result;

   }

}

當然,很多人說查詢后,得到的是類的對象,那是因為,tp3.2就是直接返回查詢結果,而tp5沒有直接返回查詢結果,返回的是整個實例化類,把查詢結果放到類的data屬性里面,所以要取出數據怎么取?想象一下實例化類后怎么訪問類中的屬性,就不難理解了, 用->去取,

echo '<pre/>';var_dump($re[0]->data);

這樣就可以拿到數據了,跟tp3.2一樣,當然了我這是單條的,如果多條的話,$re的鍵值你可以循環的方式foreach去取。

Admin.php (模型刪除操作)

<?php

namespace app\index\model;

use think\Model;

class Admin extends Model
{

     // 設置當前模型對應的完整數據表名稱

     protected $table = 'user';

     public static function index(){



        $list = '14';

    

        /*單條數據刪除操作 ,同上面的單條查詢一樣,只關注where條件和傳的變量$list即可

        $list值自己可定 如上面$list = 14,id可自己定,刪除id=14這一條數據 */

        Admin::destroy(function($query) use ($list) {

            $query->where('id','=',$list);

        });

     }

  }
<?php

namespace app\index\model;

use think\Model;

class Admin extends Model
{

    // 設置當前模型對應的完整數據表名稱
    protected $table = 'user';

    public static function index(){

      $list = ['1','3'];

     /*多條數據刪除操作 ,同上面的多條查詢一樣,只關注where條件和傳的變量$list即可

         $list值自己可定 如上面$list等于一個數組,id可自己定,刪除id=1和id=3兩條數據 */

        Admin::destroy(function($query) use ($list) {

           $query->where('id','in',$list);

        });

     }

}

Admin.php (模型修改操作)

<?php

namespace app\index\model;

use think\Model;

class Admin extends Model
{

      // 設置當前模型對應的完整數據表名稱

      protected $table = 'user';

      public static function index(){

        // 靜態方法里執行非靜態方法,new static就是本類,reindex為本類的reindex方法

        $method = new \ReflectionMethod(new static,'reindex');

        $method->invokeArgs(new static,array());

      }      



      public function reindex(){

         $id = '5';

         $list = [
            'goods_id'  =>  $goods_id,
            'user_id'   =>  $_SESSION['user_id'],
         ];

       /*

       因為isUpdate方法是非靜態方法,只能用$this調用,根據手冊isUpdate(true)

       是更新,isUpdate(false)是查詢,tp5方法有點多還有點亂,但不要緊實際寫業務邏輯時,

       記住固定句型即可,像下面我們只關注save里面傳入什么東西即可,跟上面的where一樣,

       后面寫條件,前面寫修改的內容,將符合$list條件的sql語句中的rid字段值修改為0;
       $list是條件可設置多個條件,如上面的$list數組

      */

       $this->isUpdate(true)->save(['rid' => '0'],$list);

  }

}

Admin.php (模型新增操作)

<?php

namespace app\index\model;

use think\Model;

class Admin extends Model
{

     // 設置當前模型對應的完整數據表名稱
     protected $table = 'user';

     public static function index(){


         $username = 'Thinkphp';

          $passwd = '123456';



       /* 增加一條數據,Admin::create(),調用框架靜態方法create,這里提一下Admin

         是你模型的名字,如果建立的模型是user,那就寫User::create(),

         同樣只關注create里改傳入什么參數即可。新增一條數據,username插入值是$username

         passwd插入值是$passwd,你可以根據自己需求制定字段的值,別死板靈活點*/

          Admin::create([

             'username' => $username,

             'passwd' => $passwd,

          ]);

   }

}

到此,關于“thinkphp5框架如何通過模型進行增刪改查”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

孟村| 广平县| 孟津县| 湘乡市| 年辖:市辖区| 肃南| 吉林省| 顺义区| 潮安县| 黑山县| 镇康县| 诏安县| 伊宁县| 扬州市| 电白县| 景谷| 永吉县| 安福县| 华池县| 徐汇区| 北流市| 昭平县| 那坡县| 蓝田县| 陇西县| 正宁县| 涪陵区| 泌阳县| 永修县| 南开区| 东乡族自治县| 呼和浩特市| 静安区| 商洛市| 京山县| 左云县| 蓝田县| 舟山市| 成都市| 邹城市| 长治市|