跟我学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读取csv文件内容的详解
Jun 18 PHP
PHP生成sitemap.xml地图函数
Nov 13 PHP
php解压文件代码实现php在线解压
Feb 13 PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
php反射类ReflectionClass用法分析
May 12 PHP
一段实用的php验证码函数
May 19 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
PHP数据对象PDO操作技巧小结
Sep 27 PHP
PHP解决中文乱码
Apr 28 PHP
PHP使用DOM对XML解析处理操作示例
Jul 04 PHP
tp5修改(实现即点即改)
Oct 18 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正则验证Email的方法
2015/06/15 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
PHP中的函数声明与使用详解
2017/05/27 PHP
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
js jquery获取当前元素的兄弟级 上一个 下一个元素
2015/09/01 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
Python日志syslog使用原理详解
2020/02/18 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
奢华时尚的独特视角:La Garçonne
2018/06/07 全球购物
介绍一下linux的文件系统
2015/10/06 面试题
吸烟检讨书2000字
2014/02/13 职场文书
《去年的树》教学反思
2014/04/11 职场文书
对外汉语教师推荐信
2015/03/27 职场文书
小爸爸观后感
2015/06/15 职场文书
redis cluster支持pipeline的实现思路
2021/06/23 Redis
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏