tp6 获取请求的模块名、类名和方法名

tp6已停止使用 module这种方法

$module = request()->module();
现将新的获取方法记录一下:

1、获取模块名:

//1、普通方式获取
$module = app('http')->getName();
 
//2、多应用模式下获取
//目前多应用下用了第一种方式,还未发现问题,以后再更新
$module = \think\facade\App::initialize()->http->getName();
2、获取类名

$class = request()->controller();
 
$class = app('request')->controller();
3、获取方法名

$action = request()->action();
 
$action = app('request')->action();
 
————————————————
版权声明:本文为CSDN博主「君子……如玉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_25599481/article/details/108702428

在 ThinkPHP 框架中,创建控制器的方法主要有两种:通过命令行工具快速生成手动创建。具体方法如下: ### 使用命令行创建控制器 ThinkPHP 提供了命令行工具来快速生成控制器类,这在开发过程中可以节省大量时间。以 ThinkPHP 5.1 为例,可以通过以下命令创建控制器: ```bash php think make:controller Index ``` 该命令会在默认模块(如未指定模块,则为 `index`)的 `controller` 目录下生成一个为 `Index.php` 的控制器文件,文件中包含一个 `Index` 控制器类,类中默认包含 `index` 方法。这种方法适用于需要快速搭建控制器结构的场景[^2]。 ### 手动创建控制器 如果希望对控制器有更精细的控制,可以选择手动创建。控制器文件通常位于 `application/模块/controller` 目录下。例如,在 `application/index/controller` 中创建一个为 `User.php` 的控制器文件,其内容如下: ```php <?php namespace app\index\controller; use think\Controller; class User extends Controller { public function index() { return $this->fetch('index'); } public function detail($id) { // 查询数据库并分配数据到模板 $data = Db::table('user')->where('id', $id)->select(); $this->assign('user', $data); return $this->fetch('detail'); } } ``` 上述代码定义了一个 `User` 控制器,其中包含两个方法:`index` `detail`。`index` 方法用于返回视图模板,而 `detail` 方法则用于根据用户传入的 `$id` 参数查询数据库,并将结果传递给模板文件显示[^3]。 ### 配置路由 为了能够通过 URL 访问到控制器的方法,还需要配置路由。路由文件通常位于 `application/route.php`。例如,要访问上面创建的 `User` 控制器中的 `detail` 方法,可以在路由文件中添加如下配置: ```php use think\Route; Route::get('user/detail/:id', 'index/user/detail'); ``` 此配置表示当访问 `http://localhost/user/detail/1` 时,将调用 `index` 模块下的 `User` 控制器的 `detail` 方法,并将 `1` 作为 `$id` 参数传入[^4]。 ### 控制器与视图的交互 控制器不仅负责处理请求,还负责与模型视图进行交互。在控制器方法中,可以通过 `Db` 类查询数据库,并使用 `assign` 方法将查询结果传递给视图。视图文件通常位于 `application/模块/view/控制器/` 目录下,如 `application/index/view/user/index.html`。在视图文件中,可以使用 ThinkPHP 的模板语法来展示数据: ```html <!-- application/index/view/user/detail.html --> {volist name="user" id="u"} <p>{$u.name}</p> <p>{$u.email}</p> {/volist} ``` 这段代码遍历了从控制器传递过来的 `$user` 数据集,并将每个用户的 `name` `email` 字段显示出来[^4]。 ### 注意事项 - 在创建控制器时,需要注意命空间的设置,确保其与实际文件路径相匹配。 - 控制器类名应采用大驼峰命法,即每个单词首字母大写,如 `UserController`。 - 方法名则应采用小驼峰命法,即首字母小写,后续单词首字母大写,如 `userDetail`。 - 如果需要在多个控制器之间共享代码,可以考虑使用 Traits 或者继承基类来实现代码复用。 通过上述步骤,可以在 ThinkPHP 框架中有效地创建管理控制器,从而构建功能丰富的 Web 应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值