您现在的位置是:首页 > 文章详情

thinkphp 请求

日期:2019-05-29点击:197

请求对象由 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

请求缓存

将会对请求进行缓存

原文链接:https://yq.aliyun.com/articles/704167
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章