介绍一个好用的ThinkPHP Repository包

发布时间 - 2021-07-14 00:00:00    点击率:

介绍

think-repository 是为 thinkphp 6.0.* 提供的存储库用于抽象数据层,使我们的应用程序更灵活地进行维护。

你懂的

ThinkPHP

>= thinkphp 6.0.*

安装教程

Composer

composer require fanxd/think-repository dev-master

使用说明

最好在多应用下使用

命令

php think fanxd:repository Post

路由

Route::resource(‘post’, ‘PostController’);

可用的方法

  • first($id) // 查找单条记录
  • get() // 查找记录
  • paginate() // 分页查询
  • create($data) // 写入数据
  • save($data) // 保存当前数据对象
  • delete($where) // 删除记录
  • update($where,$data) // 更新记录
  • find($id) // 查找单条记录 如果不存在则抛出异常
  • findWhere($where,$columns = [‘*’]) // 指定AND查询条件 查找单条记录
  • with([]) // 关联查询
  • search([]) // 数据搜索
  • order($order) // 排序

查找记录

$posts=$this->repository->get();

分页查询

$posts=$this->repository->paginate($limit);

按结果按id查找

$posts=$this->repository->find($id);

$posts=$this->repository->first($id);

加载模型关系

$posts=$this->repository->with([‘state’])->find($id);

按结果按字段名查找

$posts=$this->repository->findByField(‘title’, ‘Hello’);

按结果由多个字段查找

$posts=$this->repository->findWhere([
‘id’ => 1], [‘id’, ‘title]);

按结果在一个字段中查找多个值

$posts=$this->repository->findWhereIn(‘id’, [1,2,3,4,5]);

通过排除一个字段中的多个值,按结果查找

$posts=$this->repository->findWhereNotIn(‘id’, [6,7,8,9,10]);

写入数据

$post = $this->repository->create($data);

更新记录

$posts=$this->repository->update($where, $data);

删除记录

$this->repository->delete($id)

按多个字段删除存储库中的条目

$this->repository->deleteWhere([
‘id’ => 1, ‘user_id’ => 1])

Transformer

系统会自动生成transform文件,可自行选择是否启用,主要功能对我来说就是美化接口让我们更专业 :)

 $items['id'],
            //... 
            'createTime'    => $items['create_time'],
            'updateTime'    => $items['update_time']
        ];
    }}

陆续添加更多的方法,如果你有好的想法可以告诉我,秒更!!!

相关推荐:最新的10个thinkphp视频教程


# thinkphp  # php  # Resource  # require  # 接口  # delete  # 对象  # this  # transform  # transformer  # 多个  # 单条  # 分页  # 对我  # 告诉我  # 让我们  # 你有  # 不存在  # 使我  # 主要功能 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在万网利用已有域名快速建站?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  Laravel如何实现一对一模型关联?(Eloquent示例)  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  黑客如何利用漏洞与弱口令入侵网站服务器?  JavaScript如何实现继承_有哪些常用方法  如何在Windows 2008云服务器安全搭建网站?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  javascript中闭包概念与用法深入理解  如何快速搭建高效WAP手机网站?  香港服务器选型指南:免备案配置与高效建站方案解析  Laravel如何集成Inertia.js与Vue/React?(安装配置)  如何用5美元大硬盘VPS安全高效搭建个人网站?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  如何在建站之星绑定自定义域名?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  使用豆包 AI 辅助进行简单网页 HTML 结构设计  高性能网站服务器部署指南:稳定运行与安全配置优化方案  node.js报错:Cannot find module 'ejs'的解决办法  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  如何快速搭建FTP站点实现文件共享?  如何在阿里云域名上完成建站全流程?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  JavaScript如何实现路由_前端路由原理是什么  Laravel如何自定义错误页面(404, 500)?(代码示例)  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  公司门户网站制作流程,华为官网怎么做?  北京网站制作公司哪家好一点,北京租房网站有哪些?  焦点电影公司作品,电影焦点结局是什么?  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Laravel中的Facade(门面)到底是什么原理  如何在腾讯云服务器上快速搭建个人网站?  Laravel怎么判断请求类型_Laravel Request isMethod用法  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  如何快速辨别茅台真假?关键步骤解析  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  Laravel怎么使用Intervention Image库处理图片上传和缩放  Laravel如何创建自定义Artisan命令?(代码示例)  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】