跟我学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 相关文章推荐
一个可以删除字符串中HTML标记的PHP函数
Oct 09 PHP
PHP 动态随机生成验证码类代码
Apr 09 PHP
数组与类使用PHP的可变变量名需要的注意的问题
Jun 20 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
Jul 05 PHP
php魔术函数__call()用法实例分析
Feb 13 PHP
php实现从上传文件创建缩略图的方法
Apr 02 PHP
php中使用gd库实现下载网页中所有图片
May 12 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
Dec 08 PHP
PHP定时执行任务的3种方法详解
Dec 21 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
Jan 15 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
Jun 08 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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 模拟get_headers函数的代码示例
2013/04/27 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
一个简洁实用的PHP缓存类完整实例
2014/07/26 PHP
ExtJS 简介 让你知道extjs是什么
2008/12/29 Javascript
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
jQuery.validate.js表单验证插件的使用代码详解
2018/10/22 jQuery
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
python函数装饰器用法实例详解
2015/06/04 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
Python bisect模块原理及常见实例
2020/06/17 Python
python 基于opencv操作摄像头
2020/12/24 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
化工专业个人的求职信范文
2013/11/28 职场文书
干部对照检查材料范文
2014/08/26 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
电影建国大业观后感
2015/06/01 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
会计专业自荐信范文
2019/05/22 职场文书
python OpenCV学习笔记
2021/03/31 Python
使用pandas模块实现数据的标准化操作
2021/05/14 Python
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang