话不多说直接上硬核
在tp5完全开发手册里面的解释
我相信很多人就是看不懂文档才来到这里的
就很笼统,比方说,下面这个语句要放在哪里,还有它是怎么识别到getUserInfo这个方法名的,如果说getUserInfo方法写在本控制器内,那我何必这么麻烦呢,直接方法里面实现就好了,完全没有必要调用嘛,用这个肯定是为了方便快捷
Request::hook('user','getUserInfo');
正确的打开方式
getUserInfo方法要写在common.php公共文件里面,如下图,也别忘记引用 think\Request 而不是 think\facade\Request;
controller文件如下
在调用之前进行hook注入就行,如文件当中在构造函数中注入,或者在需要执行的语句之前注入
顺便给出复制的代码
<?php
namespace app\index\controller;
use think\facade\Request;
class Msc
{
public function __construct()
{
// request()->hook("getName", "userInfo");//这样也可以注入
Request::hook("getName", "userInfo");
}
public function test()
{
$name = 'msc';
// request()->hook("getName", "userInfo");//也可以在执行之前注入,和构造函数同理
// $res = request()->getName($name);//这样也可以执行
$res = Request::instance()->getName($name);
return $res;
}
}