前言:
最近在学习 laravel 框架,学习的版本是 7.15.0 ,记录一下学习过程中遇到的问题和难点以及一些总结。
请求
访问请求
/**
* 请求
* @param Request $request
*/
public function testRequest(Request $request)
{
$name = $request->input('name');
//获取请求路径
$path = $request->path();
//获取请求 URL
//不包含查询字符串
$url = $request->url();
//包含查询字符串
$url_with_query = $request->fullUrl();
//获取请求方法
$method = $request->method();
}
获取请求输入
//获取所有输入值
$input = $request->all();
获取单个输入值
//获取单个值
$name = $request->input('name');
//处理表单数组输入时,可以使用”.”来访问数组输入:
//http://127.0.0.1:86/api/testRequest?param[][name]=小明¶m[][name]=25
$input = $request->input('param.0.name');
$names = $request->input('param.*.name');
获取全部值
//当 input 方法不传入任何参数时,效果和 all 方法等同,返回所有参数的关联数组
$input = $request->input();
//input 方法会从整个请求负载(包括查询字符串)中获取数值,query则只会从查询字符串中获取数值
//http://127.0.0.1:86/api/testRequest?name=小明
$name = $request->query('name');
//获取全部的值
$query = $request->query();
判断请求参数是否存在
//参数存在返回true
if ($request->has('name')) {
return true;
}
//判断多个参数全部存在返回true
if ($request -> has(['name', 'age'])) {
return true;
}
//判断参数任意存在返回true
if ($request->hasAny(['name', 'age'])) {
return true;
}
//判断参数存在且参数值不为空返回true
if ($request->filled('name')) {
return true;
}
获取上传的文件
//获取上传的文件,文件名file
$file = $request->file('file');
$file = $request->file;//这里取的是上传文件的参数
//判断文件在请求中存在返回true
if ($request->hasFile('file')) {
return true;
}
//判断文件在上传过程中是否出错,不出错返回true
if ($request->file('file')->isValid()){
return true;
}
//获取文件和扩展名,file为上传文件的参数名
$path = $request->file->path();
$extension = $request->file->extension();
响应
Response 对象
/**
* 响应
* @return \Illuminate\Http\JsonResponse
* @return \Illuminate\Http\Response
*/
public function testResponse()
{
return response('Hello World', 200)
->header('Content-Type', 'text/plain');
}
JSON 响应
//json 方法会自动将 Content-Type 头设置为 application/json,
//并使用 PHP 函数 json_encode 方法将给定数组转化为 JSON 格式数据
return response() -> json(['code' => 1, 'data' => [1111111111], 'msg' => '返回成功!']);