跟我学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 13 PHP
在Yii框架中使用PHP模板引擎Twig的例子
Jun 13 PHP
php实现上传图片文件代码
Jul 19 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
PHP实现的限制IP投票程序IP来源分析
May 04 PHP
php时间计算相关问题小结
May 09 PHP
php组合排序简单实现方法
Oct 15 PHP
PHP数据分析引擎计算余弦相似度算法示例
Aug 08 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
Oct 17 PHP
laravel 解决多库下的DB::transaction()事务失效问题
Oct 21 PHP
php和js实现根据子网掩码和ip计算子网功能示例
Nov 09 PHP
PHP高并发和大流量解决方案整理
Dec 24 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
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
php实现的返回数据格式化类实例
2014/09/22 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
php实现socket推送技术的示例
2017/12/20 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
2019/09/29 PHP
JavaScript toFixed() 方法
2010/04/15 Javascript
jquery+json 通用三级联动下拉列表
2010/04/19 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
javascript解决小数的加减乘除精度丢失的方案
2016/05/31 Javascript
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
python类定义的讲解
2013/11/01 Python
Python中apply函数的用法实例教程
2014/07/31 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
浅谈python numpy中nonzero()的用法
2018/04/02 Python
python中pyplot基础图标函数整理
2020/11/10 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
法学专业个人求职信
2013/09/26 职场文书
新员工培训个人的自我评价
2013/10/09 职场文书
财务会计自荐信范文
2014/02/21 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
终止劳动合同证明书样本
2014/11/19 职场文书
捐助倡议书
2015/01/19 职场文书
黄埔军校观后感
2015/06/10 职场文书
2016年元旦致辞
2015/08/01 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技