1 获取请求

1.1 获取请求的 URI
1>path 方法会返回请求的 URI。所以,如果接收到的请求目标是 http://domain.com/foo/bar,那么 path 方法就会返回 foo/bar:
$uri = $request->path();
2>is 方法可以验证接收到的请求 URI 与指定的规则是否相匹配。使用此方法时你可以将 * 符号作为通配符:
if ($request->is('admin/*')) { // }
3>使用 url 方法,可以获取完整的网址:
$url = $request->url();
1.2 获取请求的方法
method 方法会返回此次请求的 HTTP 动作。也可以通过 isMethod 方法来验证 HTTP 动作和指定的字符串是否相匹配:
$method = $request->method(); if ($request->isMethod('post')) { // }
 

2 获取输入数据

2.1 获取特定输入值
$name = $request->input('name');
2.2 此外,可以使用 Illuminate\Http\Request 的属性访问用户输入。
$name = $request->name;
2.3 当请求的输入数据不存在于此次请求时,就会返回默认值(input的第二个参数):
$name = $request->input('name', 'Sally');
2.4 如果是「数组」形式的输入数据,则可以使用「点」语法来获取数组:
$input = $request->input('products.0.name');
2.5 确认是否有输入值,使用 has 方法。当该数据存在并且字符串不为空时,has 方法就会传回 true:
if ($request->has('name')) { // }
2.6 获取所有输入数据:
$input = $request->all();
2.7 获取部分输入数据
如果你想获取输入数据的子集,则可以使用 only 及 except 方法。这两个方法都接受单个数组或是动态列表作为参数:
$input = $request->only(['username', 'password']); $input = $request->only('username', 'password'); $input = $request->except(['credit_card']); $input = $request->except('credit_card');
 

3 旧输入数据

Laravel 可以让你将本次的输入数据保留,它只在下一次的请求内有效.可以使用 flash 方法保存 session,将数据保留到下个 HTTP 请求,然后就会被自动删除,这对于在表单验证失败后重新填入表单值相当有用.
3.1 将输入数据闪存至 Session
1> flash 方法会将当前的输入数据存进session中,所以下次用户发出请求至应用程序时就可以使用它们:
$request->flash();
2> 你也可以使用 flashOnly 及 flashExcept 方法将请求数据的子集保存至 Session:
$request->flashOnly('username', 'email'); $request->flashExcept('password');
3> 闪存输入数据至 Session 后重定向
return redirect('form')->withInput(); return redirect('form')->withInput($request->except('password'));
3.2 获取旧输入数据
注意上面两种闪存方式使用session('username')是拿不到数据的,若要获取上一次请求后所闪存的输入数据,则可以使用 Request 实例中的 old 方法,
$username = $request->old('username');
Laravel 也提供了全局辅助函数 old。如果你要在Blade模板中显示旧输入数据,可以使用更加方便的 old 辅助函数:
{{old('username')}}
 
举例:登录操作
登录失败,再次跳转到登录页面,此时我们不做任何操作,其实后台已经发送了一次请求到/user/login,进行登录失败的跳转操作,此时闪存内容还存在.
我们再次刷新页面,会再次产生一次请求,此时闪存内容就不存在了
 
 
 
 
 

最新文章

  1. objccn-相机工作原理
  2. Linux中syntax error near unexpected token 错误提示解决方法
  3. target file里面的每个string字段的双引号怎么去掉
  4. 使用emmet如何生成lipsum的随机内容
  5. 系统镜像以及微PE工具箱
  6. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.5.安装Grid,创建ASM磁盘组空间不足
  7. 存储过程系列之存储过程具体操作过程及sql数据库调用
  8. Call Hierarchy(方法调用层次)
  9. [转]NHibernate之旅(5):探索Insert, Update, Delete操作
  10. Windows软件使用Q&A集锦【持续更新】
  11. wind river hypervisor 2.0.2.1
  12. Android - 错: java.lang.IllegalStateException: Already attached
  13. tomcat Server启动带profile文件
  14. ios 输入框问题
  15. Python自动化运维工具-Fabric部署及使用总结
  16. python 读取文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multib
  17. Python Selenium unittest+HTMLTestRunner实现 自动化测试及发送测试报告邮件
  18. Python中字典get方法的使用
  19. Shell编程-10-Shell中的数组
  20. Hadoop之我见

热门文章

  1. jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别讲解
  2. php 04
  3. Cocos2d-x v3.1 Hello world程序(四)
  4. Jscript 命名规范
  5. nginx 升级为最新版 nginx -1.12.0
  6. ssh免密钥登录一例问题
  7. tableviewcell折叠问题,(类似qq列表展开形式) 多个cell同时展开,OC版 和 Swift
  8. python_32_文件操作1
  9. GVIM——简直美如画,有没有!
  10. redis redis-cli 操作指令