文章目录
- 定义
- 获取路由后面的参数
- 跨域请求
- 请求
- 响应
定义
thinkphp定义路由一般在route路由下的app.php中
下面这是一个简单的路由
Route::rule('admin/login','/app/controller/Admin/login')->middleware(\app\middleware\MyMiddleware::class);
该路由表示当访问admin/login时,会去调用/app/controller/Admin/login这个方法,同时后面还可以跟上自己定义的中间件用来做数据处理和权限校验
获取路由后面的参数
具体细节可以看官方文档
地址: https://www.kancloud.cn/manual/thinkphp6_0/1037499
定义路由
Route::get('admin/getId/:id','/app/controller/Admin/getId');
控制器方法
public function getId($id){
return json(['id'=>$id]);
}
此时我们请求对应的路由就会返回,路由后面的id值
跨域请求
这个一个简单的配置解决跨域请求
ext(‘html’)设置路由的默认扩展名为html
allowCrossDomain用于设置跨域请求规则
‘Access-Control-Allow-Origin’ => ‘*’:允许任何域名访问该路由。
‘Access-Control-Allow-Credentials’ => ‘true’:允许跨域请求携带凭证,如cookie
Route::get('admin/getId/:id', '/app/controller/Admin/getId')
->ext('html')
->allowCrossDomain([
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Credentials' => 'true'
]);
请求
先引入Request类,然后通过param接收请求参数
use think\facade\Request;
public function getUserName()
{
return json([
'username' => Request::param('username'),
'password' => Request::param('password'),
'ip'=>Request::ip()
]);
}
请求缓存
定义GET请求路由规则 并设置3600秒的缓存
在路由后面添加一个cache
Route::get('new/:id','News/read')->cache(3600);
响应
按照官方的说法,大多数情况,我们不需要关注Response对象本身,只需要在控制器的操作方法中返回数据即可。
这就是一个简单的响应案例
return json([
'username' => Request::param('username'),
'password' => Request::param('password'),
'ip'=>Request::ip()
]);