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, ]); } }
相關推薦:最新的10個thinkphp影片教學
以上是簡析Tp5框架透過模型進行增刪改查的詳細內容。更多資訊請關注PHP中文網其他相關文章!

thinkphp是国产框架。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了关于使用think-queue来实现普通队列和延迟队列的相关内容,think-queue是thinkphp官方提供的一个消息队列服务,下面一起来看一下,希望对大家有帮助。

thinkphp基于的mvc分别是指:1、m是model的缩写,表示模型,用于数据处理;2、v是view的缩写,表示视图,由View类和模板文件组成;3、c是controller的缩写,表示控制器,用于逻辑处理。mvc设计模式是一种编程思想,是一种将应用程序的逻辑层和表现层进行分离的方法。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了使用jwt认证的问题,下面一起来看一下,希望对大家有帮助。

thinkphp扩展有:1、think-migration,是一种数据库迁移工具;2、think-orm,是一种ORM类库扩展;3、think-oracle,是一种Oracle驱动扩展;4、think-mongo,一种MongoDb扩展;5、think-soar,一种SQL语句优化扩展;6、porter,一种数据库管理工具;7、tp-jwt-auth,一个jwt身份验证扩展包。

thinkphp查询库是否存在的方法:1、打开相应的tp文件;2、通过“ $isTable=db()->query('SHOW TABLES LIKE '."'".$data['table_name']."'");if($isTable){...}else{...}”方式验证表是否存在即可。

本篇文章给大家带来了关于ThinkPHP的相关知识,其中主要整理了使用think-queue实现redis消息队列的相关问题,下面一起来看一下,希望对大家有帮助。

在thinkphp3.2中,可以利用define关闭调试模式,该标签用于变量和常量的定义,将入口文件中定义调试模式设为FALSE即可,语法为“define('APP_DEBUG', false);”;开启调试模式将参数值设置为true即可。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境