跟我学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 相关文章推荐
文件上传程序的全部源码
Oct 09 PHP
PHP读取MySQL数据代码
Jun 05 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
PHP三元运算的2种写法代码实例
May 12 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
ThinkPHP自动完成中使用函数与回调方法实例
Nov 29 PHP
php与python实现的线程池多线程爬虫功能示例
Oct 12 PHP
php事件驱动化设计详解
Nov 10 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
Mar 25 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
Feb 07 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中使用url传递数组的方法
2015/02/11 PHP
PHP处理postfix邮件内容的方法
2015/06/16 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
javascript的push使用指南
2014/12/05 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
[01:00:30]TFT vs VGJ.T Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
python监控网卡流量并使用graphite绘图的示例
2014/04/27 Python
Python深入学习之闭包
2014/08/31 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
python学习必备知识汇总
2017/09/08 Python
详解python持久化文件读写
2019/04/06 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
Python实现结构体代码实例
2020/02/10 Python
python em算法的实现
2020/10/03 Python
利用python清除移动硬盘中的临时文件
2020/10/28 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
优秀的计算机专业求职信范文
2013/12/27 职场文书
学前教育学生自荐信范文
2013/12/31 职场文书
办理护照工作证明
2014/10/10 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
公司备用金管理制度
2015/08/04 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript
浅谈Python numpy创建空数组的问题
2021/05/25 Python
MySQL注入基础练习
2021/05/30 MySQL
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS