thinkphp 请求
请求对象由 think\Request 负责 只需要依赖注入即可
请求对象
构造方法注入即可
public function __construct(Request $request){$this->request = $request;}
请求信息
<?phpnamespace 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进行检测。
或者可以输入参数的方式获取变量
路由设置
<?phpuse think\facade\Route;Route::rule('ming/:name', 'index/index');
控制器设置
<?phpnamespace 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 进行伪装
头信息
<?phpnamespace 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
定义路由
<?phpuse think\facade\Route;Route::rule('ming/year/:year/month/<month>', 'index/index');
其中month为可选
控制器如下
<?phpnamespace 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
请求缓存
将会对请求进行缓存
thinkphp 请求相关推荐
- 功能测试与抓包工具Fiddler(http与fiddler)
文章目录 功能测试与数据库 项目与数据库的关系 功能测试与抓包工具 HTML与HTTP 协议 URL HTML HTTP HTTP请求与响应 基本概念 HTTP请求 HTTP响应 抓包工具 Fiddl ...
- ThinkPHP--基础
主要特性 引入容器和Facade支持 依赖注入完善和支持更多场景 重构的(对象化)路由 支持注解路由 跨域请求支持 配置和路由目录独立 取消系统常量 助手函数增强 类库别名机制 模型和数据库增强 验证 ...
- thinkphp ajax请求报500错误
在控制器中获取ajax请求的数据时报500错误,查了下,是服务器内部原因,用了几个小时在找到底是为什么,苦无果!!!. 后来看到网上说肯定是因为服务器端php代码语法有问题,悲催的我终于开始从语法找问 ...
- thinkphp如何通过php请求接口,thinkphp怎么做json数据接口
function checkUser(){ //获取用户名 密码 $uname=$_GET['uname']; $upass=$_GET['upass']; $user=M ...
- php 发送post请求json,thinkphp ,php post发送json请求,就收post请求
发送方的代码如下 namespace Api\Controller; use Think\Controller; class IndexController extends Controller { ...
- thinkphp ajax 跨域请求 Access-Control-Allow-Origin 完美解决
在前后端分离的开发中,前端经常遇到请求接口跨域的问题 遇到这种问题,解决方法有两种: 方法一.用jsonp的格式返回数据给前端,而不是json,这个方法治标不治本,需要注意的是,使用jsonp的时候, ...
- Thinkphp 6.0请求对象和信息
本节课我们来学习一下数据请求的两个功能:请求对象和请求信息. 一.请求对象 1. 使用构造方法注入请求,如下: namespace app\controller; use think\Request; ...
- thinkphp fastadmin 解决vue前后端分离项目的跨域问题 以及 OPTIONS请求类型
fastadmin的专用方法: 修改文件:application/config.php,这是fa的配置文件. 修改属性 cors_request_domain,搜一下就找到了,在里面加上你的域名就行了 ...
- php thinkphp curl 模拟post,put,delete,get 请求
function curl($url,$method,$params,$auth){ //初始化CURL句柄 $curl = curl_init(); curl_setopt( ...
最新文章
- 二值网络--Training Binary Weight Networks via Semi-Binary Decomposition
- WebSocket——[Error during WebSocket handshake: Unexpected response code: 200]解决方案
- 【Java从0到架构师】Spring - 整合 MyBatis
- java 小数精度问题
- matlab2c使用c++实现matlab函数系列教程-asin函数
- mysql 禁用swap_MySQL如何避免使用swap
- Android SQLite数据库 SQLiteOpenHelper的操作使用
- libcmtd.lib(wincrt0.obj) : error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 __tmainCRTStartup 中被引用
- 如何计算电机极数和无刷电机的Kv值?
- 1fichier.com-1TB免费FTP空间的使用
- ie浏览器开发比谷歌浏览器_跨浏览器开发:处理IE
- python twisted教程_twisted基础教程.pdf
- 【markdown】表格合并单元格
- 计算机操作员初级试题及答案,计算机操作员初级考试试题
- 【ProVerif学习笔记】6:握手协议(handshake protocol)建模
- 利用webSocket实现扫码登录PC端
- 封闭式基金折价排行表20060929(ZT)
- 脉冲星 1 月脉动 | Pulsar 2.5.0 和 Pulsarctl 0.3.0 发布,多项活动期待您的参与
- 利用layer-list来制作阴影效果背景
- 榕桥碑记(杨森翔撰)