Laravel5.3使用学习笔记--请求

今天趁着有空闲时间,就全面的看一下laravel5.3的请求部分的使用。
参考官方英文文档,laravel 5.3请求部分:https://laravel.com/docs/5.3/requests


一. 请求路径的使用判别

laravel的控制器中要使用请求(request)功能,需要首先引入:

use Illuminate\Http\Request;

然后,在控制器的形参上定义:

public function update(Request $request){}

接下来就可以使用请求功能了
若请求url为:

http://host/foo/bar?name=tom&passwd=123456

获取相对路由路径uri,则:

$uri = $request->path(); //输出:foo/bar

获取除query参数的完整url,则:

$url = $request->url(); //输出: http://host/foo/bar

获取包括query参数在内的完整url,则:

$url = $request->fullUrl(); //输出: http://host/foo/bar?name=tom&passwd=123456

判断路径是否某有某个前缀:

$request->is("foo*"); //输出:true

判断请求方法:

$request->isMethod('post'); //判断是否以post方法进行请求访问

二. 一般报文数据的使用

获取所有请求数据,以字典形式返回:

$input = $request->all();

获取指定键值的数据:

$name = $request->input('name'); //有则返回值,没有则返回null
$name = $request->name;//有则返回值,没有则返回null

$name = $request->input('name' ,"default_name"); //有则返回值,没有则返回"default_name"
$name = $request->input('list' ,"0.name"); //获取表单数组“list”中,第0个数组中的“name”的值
$name = $request->input('list' ,"*.name"); //获取表单数组“list”中,所有的“name”的值
$name = $request->input('user.name'); //当content-type为application/json,可获取user.name下的数据

$request->only(['username', 'password']);
或
$request->only('username', 'password');//除了username和password外其他字段不取

$request->except(['credit_card']);
或
$request->except('credit_card');//除了credit_card外其他字段都取

除此外,request还可以判断是否有某个键值:

$request->has('name');

三. 使用上一次请求的数据

有是需要将同一连接两次请求间的数据进行比对,这时可以使用:

//将当前请求时提交的数据写进session里
$request->flash(); 
$request->flashOnly(['username', 'email']);
$request->flashExcept('password');

下一次请求时,可以这样访问上一次的数据:

$username = $request->old('username');

在模板里可以这么使用:

<input type="text" name="username" value="{{ old('username') }}">

四. 文件请求

当提交的数据是文件时,可以这么获取文件描述对象:

$file = $request->file('photo');
或
$file = $request->photo;

判断上传的文件中有没有需要的文件:

$request->hasFile('photo')

判断文件上传是否成功:

$request->file('photo')->isValid()

获取文件的路径和拓展名:

$request->photo->path(); //获取路径
$request->photo->extension(); //获取拓展名

将文件保存在磁盘上:

//5.1框架上
$request->file('photo')->move($destinationPath);
或
$request->file('photo')->move($destinationPath, $fileName);

//5.3框架上方法还没弄清


五. cookie操作

直接获取cookie的某个键值:

$value = $request->cookie('name');

在响应上带上cookie值,如下:

return response('Hello World')->cookie(
    'name', 'value', $minutes
);
或
return response('Hello World')->cookie(
    'name', 'value', $minutes, $path, $domain, $secure, $httpOnly
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值