一、路由定义
在路由配置文件router.php中
use think\Route;
// 增删改查路由
Route::rule('login','api/login/getInfo','GET',['https' => false]); // 定义GET请求路由规则
Route::rule('login','api/login/postInfo','POST',['https' => false]); // 定义POST请求路由规则
Route::rule('login','api/login/putInfo','PUT',['https' => false]); // 定义PUT请求路由规则
Route::rule('login','api/login/deleteInfo','DELETE',['https' => false]); // 定义DELETE请求路由规则
//Route::rule('login','api/login/Info','GET|POST',['https' => false]); // 定义GET和POST请求路由规则
//Route::rule('login','api/login/allInfo','*',['https' => false]); // 所有请求都支持的路由规则
// 增删改查路由 - 简化
Route::get('login','api/login/getInfo',['https' => false]); // 定义GET请求路由规则
Route::post('login/:id','api/login/postInfo',['https' => false]); // 定义POST请求路由规则
Route::put('login','api/login/putInfo',['https' => false]); // 定义PUT请求路由规则
Route::delete('login','api/login/deleteInfo',['https' => false]); // 定义DELETE请求路由规则
//Route::any('login','api/login/allInfo',['https' => false]); // 所有请求都支持的路由规则
二、路由参数传递的三种方式(以post请求为例)
1. 在URL后通过 /value 的方式传递参数
- 在路由配置文件router.php中定义参数名
Route::post('login/:id1/:id2','api/login/postInfo',['https' => false]);
- 前端在URL中拼接参数
http://abc.com/login/100/200
2. 在URL后通过 ?key=value 的方式传递参数
- 在路由配置文件router.php中
Route::post('login','api/login/postInfo',['https' => false]);
- 前端在URL中拼接参数
http://abc.com/login?id1=100&id2=200
3. 通过post的方式传递参数
- 在路由配置文件router.php中
Route::post('login','api/login/postInfo',['https' => false]);
- 前端以post的方式传递参数
http://abc.com/login
// 参数
{
"id1":100,
"id2":200
}
二、路由参数获取的三种方式
1. 在方法中以参数名为方法参数,可获取get和post类型的参数
在Login.php控制器中
namespace app\api\controller;
class Login
{
public function postInfo($id1,$id2){
echo $id1;
echo $id2;
echo 'post info';
}
}
2. 在方法中通过Request类获取参数,可获取get和post类型的参数
在Login.php控制器中
namespace app\api\controller;
use think\Request;
class Login
{
public function postInfo(){
$id1 = Request::instance()->param('id1'); // 可获取get和post类型参数
$id2 = Request::instance()->param('id2'); // 可获取get和post类型参数
$id1_post = Request::instance()->post('id1'); // 只获取post类型参数
$id1_get = Request::instance()->get('id1'); // 只获取get类型参数
$param_array = Request::instance()->param(); // 以数组的方式获取get和post类型的所有参数
$param_array_get = Request::instance()->get(); // 以数组的方式获取get类型的所有参数
$param_array_post = Request::instance()->post(); // 以数组的方式获取post类型的所有参数
echo $id1;
echo $id2;
echo $id1_post;
echo $id1_get;
print_r($param_array);
print_r($param_array_get);
print_r($param_array_post);
echo 'post info';
}
}
或者用依赖注入的方式
namespace app\api\controller;
use think\Request;
class Login
{
public function postInfo(Request $request){
$id1 = $request->param('id1'); // 可获取get和post类型参数
$id2 = $request->param('id2'); // 可获取get和post类型参数
$id1_post = $request->post('id1'); // 只获取post类型参数
$id1_get = $request->get('id1'); // 只获取get类型参数
$param_array = $request->param(); // 以数组的方式获取get和post类型的所有参数
$param_array_get = $request->get(); // 以数组的方式获取get类型的所有参数
$param_array_post = $request->post(); // 以数组的方式获取post类型的所有参数
echo $id1;
echo $id2;
echo $id1_post;
echo $id1_get;
print_r($param_array);
print_r($param_array_get);
print_r($param_array_post);
echo 'post info';
}
}
3. 在方法中通过助手函数获取参数,可获取get和post类型的参数
在Login.php控制器中
namespace app\api\controller;
class Login
{
public function postInfo(){
$id1 = input('param.id1'); // 可获取get和post类型参数
$id2 = input('param.id2'); // 可获取get和post类型参数
$id1_post = input('post.id1'); // 只获取post类型参数
$id1_get = input('get.id1'); // 只获取get类型参数
$param_array = input('param.'); // 以数组的方式获取get和post类型的所有参数
$param_array_get = input('get.'); // 以数组的方式获取get类型的所有参数
$param_array_post = input('post.');; // 以数组的方式获取post类型的所有参数
echo $id1;
echo $id2;
echo $id1_post;
echo $id1_get;
print_r($param_array);
print_r($param_array_get);
print_r($param_array_post);
echo 'post info';
}
}
网友评论