跟我学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 调用远程url的六种方法小结
Nov 02 PHP
php 引用(&)详解
Nov 20 PHP
浅析memcache启动以及telnet命令详解
Jun 28 PHP
PHP小教程之实现链表
Jun 09 PHP
php实现获取文件mime类型的方法
Feb 11 PHP
浅谈PHP中JSON数据操作
Jul 01 PHP
PHP实现抓取迅雷VIP账号的方法
Jul 30 PHP
php中二维数组排序问题方法详解
Aug 28 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 PHP
PHP list() 将数组中的值赋给变量的简单实例
Jun 13 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
Apr 19 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 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编码规范之注释和文件结构说明
2010/07/09 PHP
支持中文的PHP按字符串长度分割成数组代码
2015/05/17 PHP
php中__toString()方法用法示例
2016/12/07 PHP
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
2012/10/15 Javascript
js获取内联样式的方法
2015/01/27 Javascript
js封装可使用的构造函数继承用法分析
2015/01/28 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
js轮播图代码分享
2016/07/14 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
canvas绘制多边形
2017/02/24 Javascript
NodeJs实现定时任务的示例代码
2017/12/05 NodeJs
iView框架问题整理小结
2018/10/16 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
jQuery中使用validate插件校验表单功能
2019/05/24 jQuery
微信小程序 生成携带参数的二维码
2019/10/23 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
在Python的Flask框架下收发电子邮件的教程
2015/04/21 Python
python简单实现基于SSL的IRC bot实例
2015/06/15 Python
python读写json文件的简单实现
2017/04/11 Python
Python自定义线程池实现方法分析
2018/02/07 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
css3发光搜索表单分享
2014/04/11 HTML / CSS
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
四年级下册教学反思
2014/02/01 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
优秀团员自我评价
2015/03/10 职场文书
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
2021/09/04 SQL Server
python利用while求100内的整数和方式
2021/11/07 Python