三、ThinkPHP的请求和响应

1、请求

1.1变量获取

变量获取有三种方式:
1、门面方式获取数据

//use think\facade\Request
//此方法要传入参数$request
public function fun(Request request){
	// GET的获取
	Request::get('id');
	// 设置默认值
	Request::get('id',2333);
	// 还可以添加一个方法如intval
	Request::get('age',20,'intval');
	
	// 获取get全部数据
    Request::get();
    // 判断一个key是否存在
    Request::has('sex');
    // 白名单
    Request::only(['id','age']);
   	// 黑名单
    Request::except(['id']);

   	// POST获取
  	Request::post('name');

    // PUT获取
   	Request::put('name');

   	// DELETE获取
	Request::delete('name');

	// 获取任意类型
	Request::param('name');

	// 判断请求的类型
	Request::isPost();
	Request::isGet();
	Request::isPut();
	Request::isDelete();
	// 是否是ajax请求
	Request::isAjax();

	// 和$_SERVER一样的
	Request::server();
	
	// 获取环境变量  即框架定义好的常量
	Request::env();

	// 获取路由
	Request::route();
}

2、依赖注入方式

public function fun(Request request){
	$request -> get('id');
	$request -> has('name');
	// 白名单和黑名单
	$request -> only(['id','name']);
	$request -> except(['score']);
}

3、辅助函数

public function fun(){
	// 获取ge的全部参数
	input('get.');
	// 获取指定参数
	input('get.id');
	// 给指定参数设置默认值
	input('get.id',1);
	
	// post数据
	input('post.');

	// 获取任意类型的请求
	input('param.');
	input('');
	// 获取任意类型的 key 为name值  如果get和post优先post
	input('name');

	// 判断一个key是值存在
	input('?name');
	// 使用变量修饰符 a 数组  s 字符串 d 数字
	input('id/d');
}

1.2参数绑定

参数绑定是把当前请求的路由参数作为操作方法的参数直接传入,参数绑定不区分请求类型

//:id是必选参数 [:id]是可选参数
Route::get('req/[:id]','@index/demo/req') -> name('index/demo/req');

2 响应

2.1 输出响应

return 'hello world';

2.2 json数据返回 可以在app.php文件中设置默认输出为json格式

'default_return_type'    => 'json',

返回json数据

return json($data,http状态码);
return json($data)->code(201)->header(['Content-Type' => 'application/json']);

2.3 重定向

redirect('地址或方法名',数组参数);

你可能感兴趣的:(thinkphp学习笔记)