当前位置: 首页 > 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.lryc.cn/news/609209.html

相关文章:

  • VUE-第二季-01
  • 【实习总结】Qt通过Qt Linguist(语言家)实现多语言支持
  • Python-初学openCV——图像预处理(六)
  • 机器学习之决策树(二)
  • solidworks打开step报【警告!可用的窗口资源极低】的解决方法
  • 《C 语言内存函数深度剖析:从原理到实战(memcpy/memmove/memset/memcmp 全解析)》
  • 使用ACK Serverless容器化部署大语言模型FastChat
  • 【十九、Javaweb-day19-Linux概述】
  • 我的世界模组进阶教程——伤害(1)
  • 每日面试题20:spring和spring boot的区别
  • Linux 文件与目录操作命令宝典
  • Unity_数据持久化_IXmlSerializable接口
  • 【视频内容创作】PR的关键帧动画
  • SQL157 更新记录(一)
  • linux下jvm之jstack的使用
  • 代码随想录day53图论4
  • Java 大视界 -- Java 大数据在智能教育学习资源个性化推荐与学习路径动态调整中的深度应用(378)
  • 【LLM】 BaseModel的作用
  • 【0基础PS】PS工具详解--文字工具
  • Shell脚本-变量是什么
  • 思途JSP学习 0802(项目完整流程)
  • Linux网络编程 --- 多路转接select
  • Unity JobSystem 与 BurstCompiler 资料
  • 2025.8.3
  • webrtv弱网-QualityScalerResource 源码分析及算法原理
  • 【大模型实战】向量数据库实战 - Chroma Milvus
  • Linux mount挂载选项详解(重点关注nosuid)
  • ESP32开发问题汇总
  • ZStack Cloud 5.3.40正式发布
  • 第15届蓝桥杯Scratch图形化国赛初/中级组2024年9月7日真题