跟我学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连接mssql:pdo odbc sql server
Jul 20 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
Aug 09 PHP
深入php常用函数的使用汇总
Jun 08 PHP
PHP如何利用P3P实现跨域
Aug 24 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
Sep 29 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
Oct 10 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
Jan 08 PHP
PHP使用文件锁解决高并发问题示例
Mar 29 PHP
PHP中的自动加载操作实现方法详解
Aug 06 PHP
laravel-admin 在列表页添加自定义按钮的例子
Sep 30 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
Jul 24 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
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
成为好程序员必须避免的5个坏习惯
2014/07/04 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
2014/09/24 PHP
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
Javascript学习笔记二 之 变量
2010/12/15 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
p5.js码绘“跳动的小正方形”的实现代码
2019/10/22 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
微信小程序动态添加和删除组件的现实
2020/02/28 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
python中对list去重的多种方法
2014/09/18 Python
Python基本语法经典教程
2016/03/11 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
Python安装selenium包详细过程
2019/07/23 Python
Python将视频或者动态图gif逐帧保存为图片的方法
2019/09/10 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
便利店促销方案
2014/02/20 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
合伙经营协议书
2014/04/18 职场文书
孝女彩金观后感
2015/06/10 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android