当前位置: 首页 > news >正文

ThinkPHP8.x控制器和模型的使用方法

一:一直以来我对TP控制器和模型的误解

一直以来,我都误以为:在控制器里写一个方法(增删改查)用来组织数据,然后还需要在模型里再写一个对应的方法(增删改查)用来处理数据。

这几天在研究TP8,突然发现是自己误解了好久,看TP8的手册,控制器部分几乎没有什么内容了,增删改查都放在模型部分介绍。

真实的情况是:我们只需要在控制器里组织数据,(增删改查)的模型操作方法都是TP已经帮我们写好的,在控制器里就可以直接使用!

建一个空模型就行了

<?php
declare (strict_types = 1);namespace app\admin\model;use think\Model;class Channel extends Model
{}

在控制器里引用一下

use app\admin\model\Channel as ChannelModel;

然后就可以用了:

$model = new ChannelModel();$model->save($data)

二:ThinkPHP8.x控制器初始化方法的使用

注意必须要在基类控制器里面集成app\BaseController只有,initialize方法才能正常使用!!!否则是不起效果的。

use app\BaseController;class Base extends BaseController
{public $prefix;protected function initialize(){//获取一下数据库前缀$this->prefix = Config::get('database.connections.mysql.prefix');}
}

这样操作之后:其他的继承了Base的控制器里面,都可以直接用$this->prefix来使用这个变量了,有点像整个应用的全局变量。

initialize方法的特点在于:只需要在这里写一次就行了,其他的控制器里不需要再做任何操作,所有继承了Base控制器的其他控制器,运行前都会自动触发一次这里的initialize方法。

http://www.dtcms.com/a/312578.html

相关文章:

  • MySQL学习之MVCC多版本并发控制
  • React中的Hooks
  • 量子态演化算符性质与形成原因总结
  • 决策树分类实战:从数据到模型优化
  • 代驾管理系统:智慧出行的重要支撑
  • 8.3 滑窗 |栈|阶乘判断
  • vector<int> adjList[MAX] 和 vector<int> adjList(MAX)的区别【C++】
  • 记录NVIDIA Orin启动流程,镜像文件,AB双分区,ota升级
  • STM32复位电路解析
  • Java常用英语单词
  • adb 与pad 交互方法
  • PPT自动化 python-pptx - 9: 图表(chart)
  • 服务器中切换盘的操作指南
  • Jetson Orin NX/NANO+ubuntu22.04+humble+MAVROS2安装教程
  • Kafka——常见工具脚本大汇总
  • /usr/bin/ld: 找不到 -lev
  • stm32f103重新上电后前面的打印内容无法打印出来的原因
  • Springboot 04 starter
  • 分布式文件系统05-生产级中间件的Java网络通信技术深度优化
  • ClickHouse Windows迁移方案与测试
  • HiveMQ 2024.9 设计与开发文档
  • 知识随记-----MySQL 连接池健康检测与 RAII 资源管理技术
  • Timer串口常用库函数(STC8系列)
  • Docker--解决x509: certificate signed by unknown authority
  • 系统学习算法:专题十六 字符串
  • 基于SpringBoot+MyBatis+MySQL+VUE实现的电商平台管理系统(附源码+数据库+毕业论文+部署教程+配套软件)
  • WSUS服务器数据库维护与性能优化技术白皮书
  • Leetcode 12 java
  • CSS 预处理器(Preprocessor)和后处理器(Postprocessor)
  • python工具方法51 视频数据的扩充(翻转、resize、crop、re_fps)