跟我学Laravel之请求与输入


Posted in PHP onOctober 15, 2014

基本输入

Laravel使用一种简单的方式来访问用户提交的信息。 你可以用统一的方式来访问用户提交的信息,而不用为用户提交信息的方式操心。

获取一个用户提交的值

$name = Input::get('name');

为用户提交信息指定一个的默认返回值(如果用户未提交)

$name = Input::get('name', 'Sally');

判断指定的提交信息是否存在

if (Input::has('name'))

{

    //

}

获取所有用户提交的信息

$input = Input::all();

获取指定的信息,或者获取排除指定几个提交项之外的所有提交信息

$input = Input::only('username', 'password');
$input = Input::except('credit_card');

如果提交的表单含有 "数组" 形式的输入,可以使用点符号访问数组:

$input = Input::get('products.0.name');

注意: 有一些javascript库,比如 Backbone 会以json格式提交信息。 通过 Input::get 来获取信息,使用上无差别。

Cookies

Laravel会加密所有已创建的cookie信息,并附加上授权码,当客户端擅自修改cookie信息时,该cookie将被废弃,从而保证安全性。

获取一个指定的cookie值

$value = Cookie::get('name');

添加一个新的cookie键值对

$response = Response::make('Hello World');
$response->withCookie(Cookie::make('name', 'value', $minutes));

加入下一个Response的Cookie队列之中

如果想在Response创建之前设置cookie,可以使用 Cookie::queue() 方法。cookie将通过应用框架自动添加到最终的Response之中。

Cookie::queue($name, $value, $minutes);

创建一个永不过期的cookie键值对

$cookie = Cookie::forever('name', 'value');

用户提交信息持久化

有时可能需要在用户的多个请求之间持久化用户提交的信息。 比如,当用户提交的信息验证失败重新返回提交信息页面时还原用户的输入。

将用户提交的信息存入Session

Input::flash();

把指定的用户提交的信息存入Session

Input::flashOnly('username', 'email');
Input::flashExcept('password');

如果你需要关联持久用户提交的信息的操作和重定向操作,可以使用如下的链式调用的方法:
return Redirect::to('form')->withInput();
return Redirect::to('form')->withInput(Input::except('password'));

注意: 如果你想持久化其它的信息,请参考 Session 类.
获取已持久化的用户提交的信息

Input::old('username');

文件上传

获取用户上传的文件

$file = Input::file('photo');

判断指定文件是否已经被上传

if (Input::hasFile('photo'))

{

    //

}

file 方法返回了一个 Symfony\Component\HttpFoundation\File\UploadedFile 类的实例, 该类继承自PHP的 SplFileInfo 类,并提供了大量操作该用户上传的文件的方法。

移动一个已上传的文件

Input::file('photo')->move($destinationPath);
Input::file('photo')->move($destinationPath, $fileName);

获取一个已上传的文件在服务器的真实路径

$path = Input::file('photo')->getRealPath();

获取一个已上传的文件的大小

$size = Input::file('photo')->getSize();

获取一个已上传的文件的 MIME 类型

$mime = Input::file('photo')->getMimeType();

用户请求的详细信息

Request 类提供了许多 方法 用于获取关于请求的详细信息,该类继承自 Symfony\Component\HttpFoundation\Request 类。 下面提供了几个具有代表性的方法:

获取请求URI

$uri = Request::path();
判断请求路径是否符合指定模式

if (Request::is('admin/*'))

{

    //

}

获取请求URL

$url = Request::url();
获取请求URI信息

$segment = Request::segment(1);
获取请求头里的Content-Type信息

$value = Request::header('Content-Type');
获取 $_SERVER 数组里指定的值

$value = Request::server('PATH_INFO');
判断是否是使用ajax请求

if (Request::ajax())

{

    //

}

判断请求是否使用https连接

if (Request::secure())

{

    //

}

检测请求的响应格式

Request::format 方法基于 HTTP 请求头的 Accept 信息返回客户端希望获取的响应格式:

if (Request::format() == 'json')

{

    //

}
PHP 相关文章推荐
提升PHP速度全攻略
Oct 09 PHP
PHP 输出简单动态WAP页面
Jun 09 PHP
解决PHP超大文件下载,断点续传下载的方法详解
Jun 06 PHP
php中数字0和空值的区别分析
Jun 05 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 PHP
php字符串过滤与替换小结
Jan 26 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
Aug 31 PHP
php中strtotime函数性能分析
Nov 20 PHP
php用xpath解析html的代码实例讲解
Feb 14 PHP
PHP让网站移动访问更加友好方法
Feb 14 PHP
PHP函数积累总结
Mar 19 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 PHP
跟我学Laravel之路由
Oct 15 #PHP
跟我学Laravel之请求(Request)的生命周期
Oct 15 #PHP
跟我学Laravel之配置Laravel
Oct 15 #PHP
跟我学Laravel之安装Laravel
Oct 15 #PHP
跟我学Laravel之快速入门
Oct 15 #PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
Oct 15 #PHP
Laravel框架学习笔记(一)环境搭建
Oct 15 #PHP
You might like
php heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
PHP mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
js中关于String对象的replace使用详解
2011/05/24 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
jquery与js实现全选功能的区别
2017/06/11 jQuery
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
Python 类的继承实例详解
2017/03/25 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
在vscode中配置python环境过程解析
2019/09/28 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
用python写PDF转换器的实现
2020/10/29 Python
妈妈的账单教学反思
2014/02/06 职场文书
西式婚礼主持词
2014/03/13 职场文书
个人投资合作协议书
2014/10/12 职场文书
迟到检讨书
2015/01/26 职场文书
小学美术教学反思
2016/02/17 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
logback 实现给变量指定默认值
2021/08/30 Java/Android