跟我学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分页显示制作详细讲解
Nov 19 PHP
PHP 常用函数库和一些实用小技巧
Jan 01 PHP
PHP分页效率终结版(推荐)
Jul 01 PHP
codeigniter集成ucenter1.6双向通信的解决办法
Jun 12 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
Oct 13 PHP
php实现在服务器端调整图片大小的方法
Jun 16 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
遍历echsop的region表形成缓存的程序实例代码
Nov 01 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
PHP后台实现微信小程序登录
Aug 03 PHP
PHP实现简单注册登录系统
Dec 28 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将数据导入到Foxmail
2006/10/09 PHP
PHP5 的对象赋值机制介绍
2011/08/02 PHP
php输出xml格式字符串(用的这个)
2012/07/12 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
html+js实现简单的计算器代码(加减乘除)
2016/07/12 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
js实现坦克移动小游戏
2019/10/28 Javascript
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
Python中的探索性数据分析(功能式)
2017/12/22 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
Python实现对文件进行单词划分并去重排序操作示例
2018/07/10 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
Python进程池Pool应用实例分析
2019/11/27 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
Python如何用wx模块创建文本编辑器
2020/06/07 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
花卉与景观设计系大学生求职信
2013/10/01 职场文书
特色蛋糕店创业计划书
2014/01/28 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
2014年教师节国旗下讲话稿
2014/09/10 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
琅琊山导游词
2015/02/05 职场文书
mysql如何配置白名单访问
2021/06/30 MySQL