基于laravel Request的所有方法详解
获取请求的实例
通过Facade
Request这个facade可以让我们得到绑定在容器里的当前这个请求。比如:
$name=Request::input('name');
注意,如果你在一个命名空间里,你需要在类文件的顶部使用useRequest;这条声明来导入Request这个facade。
通过依赖注入
要通过依赖注入得到当前HTTP请求的实例,需要在你的控制器构造函数或者方法里type-hint类。当前请求的这个实例会被ServiceContainer自动注入进来。
input('name'); // } }
如果你的控制器方法期待来自路由参数上的input(值),可以在其它的依赖的后面列出这些路由参数:
检索输入
检索输入的值
使用几个简单的方法,你可以得到在Illuminate\Http\Request实例上的用户的所有的输入。你不用管请求使用的HTTP动作是什么,可以使用同样的方法来得到所有的输入的值。
$name=Request::input('name');在缺少输入值的时候去获取到默认值
$name=Request::input('name','Sally');确定一个输入值是否出现
if(Request::has('name')) { // }得到请求里的所有输入的值
$input=Request::all();得到请求里的部分输入值
$input=Request::only('username','password'); $input=Request::except('credit_card');如果输入里面包含数组类型的值,可以使用点的形式访问到这个数组里的值:
$input=Request::input('products.0.name');以前输入的值
Laravel会存储在一次请求与下一次请求之间的输入值。比如,你可能需要在验证了输入错误之后重新填写表单。
把输入值闪存到会话里
flash方法可以把当前的输入的值闪存(flash)到会话(session)里。这样,在用户下一次对应用发出请求的时候可以用到这些输入值:
Request::flash();把一部分输入值闪存到会话里
Request::flashOnly('username','email'); Request::flashExcept('password');闪存与重定向
你想闪存输入值并且用一个重定向(redirect)到前一个页面上,可以把输入闪存链到一个重定向上。
returnredirect('form')->withInput(); returnredirect('form')->withInput(Request::except('password'));得到以前的数据
得到前一个请求里的闪存的输入值,可以使用在Request实例上的old这个方法。
$username=Request::old('username');如果你打算用Blade模板显示以前的输入值,可以使用old这个帮手:
{{old('username')}}Cookies
Laravel框架创建的所有的Cookies都是加密的,并且会签上一个认证的代码,意思就是如果这些Cookies在客户端那里被修改过,就会被认为是无效的Cookies。
检索Cookie值
$value=Request::cookie('name');把一个新Cookie附加给一个响应
cookie这个帮手的作用就是去生成新的Symfony\Component\HttpFoundation\Cookie实例。可以使用withCookie方法把Cookies附加到Response实例上:
$response=newIlluminate\Http\Response('HelloWorld'); $response->withCookie(cookie('name','value',$minutes));创建永恒的Cookie
永恒,我们的意思其实就是5年。
$response->withCookie(cookie()->forever('name','value'));文件
检索一个上传了的文件
$file=Request::file('photo');确定一个文件是不是被上传了
if(Request::hasFile('photo')) { // }file方法返回来的对象是Symfony\Component\HttpFoundation\File\UploadedFile类的一个实例,这个类继承了PHP的SplFileInfo类,提供了很多方法可以跟文件交互。
确定上传的文件是否有效
if(Request::file('photo')->isValid()) { // }移动一个上传的文件
Request::file('photo')->move($destinationPath); Request::file('photo')->move($destinationPath,$fileName);其它文件方法
在UploadedFile实例上还有一些其它的方法。具体可以看一下ClassAPI的文档。
其它的请求信息
Request类为你的应用提供了很多方法可以检查HTTP请求,它继承了Symfony\Component\HttpFoundation\Request类。下面是几个亮点。
检索请求URI
$uri=Request::path();检索请求方法
$method=Request::method(); if(Request::isMethod('post')) { // }确定请求路径是否匹配一个模式
if(Request::is('admin/*')) { // }得到当前请求的地址
$url=Request::url();以上这篇基于laravelRequest的所有方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。