跟我学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 相关文章推荐
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
php 伪静态之IIS篇
Jun 02 PHP
php使用Jpgraph绘制3D饼状图的方法
Jun 10 PHP
CI框架整合smarty步骤详解
May 19 PHP
PHP实现一个简单url路由功能实例
Nov 05 PHP
Zend Framework入门教程之Zend_View组件用法示例
Dec 09 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
Aug 25 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
PHP注释语法规范与命名规范详解篇
Jan 21 PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 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 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
PHP文件读写操作之文件写入代码
2011/01/13 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
php去除HTML标签实例
2013/11/06 PHP
PHP fclose函数用法总结
2019/02/15 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
原生JS实现汇率转换功能代码实例
2020/05/13 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
在Python中关于中文编码问题的处理建议
2015/04/08 Python
Python函数参数类型*、**的区别
2015/04/11 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
入股协议书范本
2014/04/14 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
清洁工个人工作总结
2015/03/05 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书