thinkphp 请求
请求对象由 thinkRequest 负责 只需要依赖注入即可
请求对象
构造方法注入即可
public function __construct(Request $request) { $this->request = $request; }
请求信息
<?php namespace app\index\controller; use think\exception\ValidateException; use think\facade\Request; class Index extends BaseController { /** * 显示资源列表 * * @return \think\Response */ public function index(Request $request) { return Request::url(); } /** * 显示创建资源表单页. * * @return \think\Response */ public function create() { // } /** * 保存新建的资源 * * @param \think\Request $request * @return \think\Response */ public function save(Request $request) { // } /** * 显示指定的资源 * * @param int $id * @return \think\Response */ public function read($id) { // } /** * 显示编辑资源表单页. * * @param int $id * @return \think\Response */ public function edit($id) { // } /** * 保存更新的资源 * * @param \think\Request $request * @param int $id * @return \think\Response */ public function update(Request $request, $id) { // } /** * 删除指定资源 * * @param int $id * @return \think\Response */ public function delete($id) { // } public function __call($name, $arguments) { // TODO: Implement __call() method. return 'error request'; } }
输入网址 http://localhost:8082/ 返回斜杠
输入变量
需要引入
use think\facade\Request;
在中间件里设置变量,然后使用has进行检测。
或者可以输入参数的方式获取变量
路由设置
<?php use think\facade\Route; Route::rule('ming/:name', 'index/index');
控制器设置
<?php namespace app\index\controller; use think\exception\ValidateException; use think\facade\Request; class Index extends BaseController { /** * 显示资源列表 * * @return \think\Response */ public function index($name) { return Request::param('name'); } /** * 显示创建资源表单页. * * @return \think\Response */ public function create() { // } /** * 保存新建的资源 * * @param \think\Request $request * @return \think\Response */ public function save(Request $request) { // } /** * 显示指定的资源 * * @param int $id * @return \think\Response */ public function read($id) { // } /** * 显示编辑资源表单页. * * @param int $id * @return \think\Response */ public function edit($id) { // } /** * 保存更新的资源 * * @param \think\Request $request * @param int $id * @return \think\Response */ public function update(Request $request, $id) { // } /** * 删除指定资源 * * @param int $id * @return \think\Response */ public function delete($id) { // } public function __call($name, $arguments) { // TODO: Implement __call() method. return 'error request'; } }
访问 url http://localhost:8082/index/ming/45
此时页面输出 45
当请求为?的时候,使用get获取
同样可以使用助手函数获取
请求类型
添加 _method 进行伪装
头信息
<?php namespace app\index\controller; use think\exception\ValidateException; use think\facade\Request; class Index extends BaseController { /** * 显示资源列表 * * @return \think\Response */ public function index($name) { return Request::header('user-agent'); } /** * 显示创建资源表单页. * * @return \think\Response */ public function create() { // } /** * 保存新建的资源 * * @param \think\Request $request * @return \think\Response */ public function save(Request $request) { // } /** * 显示指定的资源 * * @param int $id * @return \think\Response */ public function read($id) { // } /** * 显示编辑资源表单页. * * @param int $id * @return \think\Response */ public function edit($id) { // } /** * 保存更新的资源 * * @param \think\Request $request * @param int $id * @return \think\Response */ public function update(Request $request, $id) { // } /** * 删除指定资源 * * @param int $id * @return \think\Response */ public function delete($id) { // } public function __call($name, $arguments) { // TODO: Implement __call() method. return 'error request'; } }
输入 http://localhost:8082/index/ming/name
返回当前的头信息
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) snap Chromium/74.0.3729.169 Chrome/74.0.3729.169 Safari/537.36
伪静态
配置文件修改伪静态。。
服务器需要支持.htass文件
<?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <liu21st@gmail.com> // +---------------------------------------------------------------------- // +---------------------------------------------------------------------- // | 应用设置 // +---------------------------------------------------------------------- return [ // PATHINFO变量名 用于兼容模式 'var_pathinfo' => 's', // 兼容PATH_INFO获取 'pathinfo_fetch' => ['ORIG_PATH_INFO', 'REDIRECT_PATH_INFO', 'REDIRECT_URL'], // pathinfo分隔符 'pathinfo_depr' => '/', // HTTPS代理标识 'https_agent_name' => '', // URL伪静态后缀 'url_html_suffix' => 'html', // URL普通方式参数 用于自动生成 'url_common_param' => true, // 是否开启路由延迟解析 'url_lazy_route' => false, // 是否强制使用路由 'url_route_must' => false, // 合并路由规则 'route_rule_merge' => false, // 路由是否完全匹配 'route_complete_match' => false, // 使用注解路由 'route_annotation' => false, // 是否开启路由缓存 'route_check_cache' => false, // 路由缓存连接参数 'route_cache_option' => [], // 路由缓存Key 'route_check_cache_key' => '', // 访问控制器层名称 'controller_layer' => 'controller', // 空控制器名 'empty_controller' => 'Error', // 是否使用控制器后缀 'controller_suffix' => false, // 默认的路由变量规则 'default_route_pattern' => '[\w\.]+', // 域名根,如thinkphp.cn 'url_domain_root' => '', // 是否自动转换URL中的控制器和操作名 'url_convert' => true, // 表单请求类型伪装变量 'var_method' => '_method', // 表单ajax伪装变量 'var_ajax' => '_ajax', // 表单pjax伪装变量 'var_pjax' => '_pjax', // 是否开启请求缓存 true自动缓存 支持设置请求缓存规则 'request_cache' => false, // 请求缓存有效期 'request_cache_expire' => null, // 全局请求缓存排除规则 'request_cache_except' => [], // 默认控制器名 'default_controller' => 'Index', // 默认操作名 'default_action' => 'index', // 操作方法后缀 'action_suffix' => '', // 默认JSONP格式返回的处理方法 'default_jsonp_handler' => 'jsonpReturn', // 默认JSONP处理方法 'var_jsonp_handler' => 'callback', ];
连接如下
http://localhost:8082/index.php/index/ming/name.html
此时访问的等价于
http://localhost:8082/index.php/index/ming/name
参数绑定
这个连接
http://localhost:8082/index/ming/year/34/month/34
定义路由
<?php use think\facade\Route; Route::rule('ming/year/:year/month/<month>', 'index/index');
其中month为可选
控制器如下
<?php namespace app\index\controller; use think\exception\ValidateException; use think\facade\Request; class Index extends BaseController { /** * 显示资源列表 * * @return \think\Response */ public function index($year, $month = '01') { return $year . $month; } /** * 显示创建资源表单页. * * @return \think\Response */ public function create() { // } /** * 保存新建的资源 * * @param \think\Request $request * @return \think\Response */ public function save(Request $request) { // } /** * 显示指定的资源 * * @param int $id * @return \think\Response */ public function read($id) { // } /** * 显示编辑资源表单页. * * @param int $id * @return \think\Response */ public function edit($id) { // } /** * 保存更新的资源 * * @param \think\Request $request * @param int $id * @return \think\Response */ public function update(Request $request, $id) { // } /** * 删除指定资源 * * @param int $id * @return \think\Response */ public function delete($id) { // } public function __call($name, $arguments) { // TODO: Implement __call() method. return 'error request'; } }
此时输入
http://localhost:8082/index/ming/year/34/month/34
返回
3434
请求缓存
将会对请求进行缓存
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
thinkphp 路由
路由定义文件 route 定义下的所有的路由文件都是有效的 定义路由必须使用 use think\facade\Route; 控制器定义 <?php namespace app\admin\controller; class Index { public function Index($number){ echo $number; } } 修改配置文件,强制路由访问 此时已经开启多应用配置 目录文件如下 修改配置文件,启用路由 <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved. // +-------...
- 下一篇
Redis 命令时间花费多原因及解决办法
Redis 命令时间花费多原因及解决办法 项目问题: 做实时推荐流遇到的问题,一般推荐流是将大的推荐列表划分成多块固定长度(不固定也可以)的内容,并且会记录之前看过的东西,在每次点击刷新后,吐出去来的新的固定块内容(假设k条)。这个过程涉及三个步骤: 查询该uid的推荐列表; 查询该uid看过的历史记录列表; 将历史记录从推荐列表中过滤掉,并吐出新的k条; 数据存储在Redis中,在仿真运行时候,假设给uid吐出200页推荐内容,程序运行的时候,出现了问题: 吐前面页数推荐内容时候挺快的,越往后越慢。 使用的包: redis-py [https://github.com/andymccurdy/redis-py] 绝大多数的时间都花在hgetall上,这里分析是与redis包的反应耗时了,去对应的包里找问题: 这个地方耗时多了,self.read_response()反应慢了,原因可能是该包是使用python实现的。再去分析self.read_response()函数,并查看reds-py项目的Readme发现:还有一个hiredis版本,由redis核心团队用c语言实现的,速度是re...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Hadoop3单机部署,实现最简伪集群