[转]Laravel 4之请求
获取请求数据
获取当前请求所包括的所有GET和POST数据
Route::get('/',function()
{
$data =Input::all();
var_dump($data);
});
输入http://myapp.dev/?foo=bar&baz=boo
,得到
array(2){["foo"]=>string(3)"bar"["baz"]=>string(3)"boo"}
获取GET数据
Input::get('foo');
如果请求中没有foo数据,返回NULL,可以指定默认值
Input::get('foo','bar');
判断提交的信息是否存在
Input::has('foo');
存在返回ture,不存在返回false
获取指定的信息
Input::only('foo','baz');
只返回foo,baz的信息
Input::except(array('foo','baz'));
返回除了foo,baz以外的信息
请求数据持久化
通常请求数据只在当前请求中有效,一旦跨请求就会实效,比如
Route::get('/',function()
{
returnRedirect::to('new/request');
});
Route::get('new/request',function()
{
var_dump(Input::all());
});
输入http://myapp.dev/?foo=one&bar=two
,返回的是array(0) { }
。使用Input::flash()
和Input::old()
,可以将数据存入session
Route::get('/',function()
{
Input::flash();
returnRedirect::to('new/request');
});
Route::get('new/request',function()
{
var_dump(Input::old());
});
跟Input::get()
类似,也可以获取单个数据
Input::old('bar')
只将部分数据存入session
Input::flashOnly('foo');
或是
Input::flashExcept('foo');
以上方法除了接受参数列表,还可以接受数组形式如
Input::old(array('first','second','third'));
Input::flashOnly(array('first','second','third'));
Input::flashExcept(array('first','second','third'));
使用withInput()
,效果跟上面一样
Route::get('/',function()
{
returnRedirect::to('new/request')->withInput();
});
或是部分
returnRedirect::to('new/request')->withInput(Input::only('foo'));
returnRedirect::to('new/request')->withInput(Input::except('foo'));
上传文件
上传文件表单
<!-- app/views/form.blade.php -->
<formaction=""
method="POST"
enctype="multipart/form-data">
<inputtype="file"name="book"/>
<inputtype="submit">
</form>
获取上传文件Input::file('book')
Route::get('/',function()
{
returnView::make('form');
});
Route::post('handle-form',function()
{
var_dump(Input::file('book'));
});
Input::file('book')
更多的方法
Input::file('book')->getFileName();
Input::file('book')->getClientOriginalName();
Input::file('book')->getClientSize();
Input::file('book')->getMimeType();
Input::file('book')->guessExtension();
Input::file('book')->getRealPath();
Input::file('book')->move('/storage/directory');
Input::file('book')->move('/storage/directory', $name);
更多方法参考Symfony UploadedFile class API
Cookies
设置Cookie
Route::get('/',function()
{
$cookie =Cookie::make('low-carb','almond cookie',30);
returnResponse::make('Nom nom.')->withCookie($cookie);
});
使用Cookie
$cookie =Cookie::get('low-carb');
判断Cookie是否存在
Cookie::has('low-carb');
永远的Cookie
$cookie =Cookie::forever('low-carb','almond cookie');
删除Cookie
Cookie::forget('low-carb');
结束
[转]Laravel 4之请求的更多相关文章
- Laravel 5.x 请求的生命周期(附源码)
Laravel最早接触是刚开始实习的时候,那时通过网上的学习资料很快便上手,开发模块接口.后来没有什么深入和总结,但是当我刚开始学Laravel的时候,我对Laravel最大的认识就是,框架除了路由. ...
- Laravel 处理 Options 请求的原理以及批处理方案
0. 背景 在前后端分离的应用中,需要使用CORS完成跨域访问.在CORS中发送非简单请求时,前端会发一个请求方式为OPTIONS的预请求,前端只有收到服务器对这个OPTIONS请求的正确响应,才会发 ...
- Laravel学习:请求到响应的生命周期
Laravel请求到响应的整个执行过程,主要可以归纳为四个阶段,即程序启动准备阶段.请求实例化阶段.请求处理阶段.响应发送和程序终止阶段. 程序启动准备阶段 服务容器实例化 服务容器的实例化和基本注册 ...
- Laravel提交POST请求报错
提交POST请求出现如下错误: The page has expired due to inactivity Please refresh and try again 这是由于在Laravel框架中有 ...
- Laravel 的HTTP请求#
获取请求# 要通过依赖注入的方式来获取当前HTTP请求的实例,你应该在控制器方法中类型提示Illuminate\Http\Request 传入的请求的实例通过 服务容器自动注入: <?php n ...
- laravel判断HTTP请求是否ajax
if(Request->ajax()){ echo "AJAX"; }else{ echo '普通请求':}
- laravel 默认所有请求带session解决办法
laravel app/Http/Kernel.php protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\Encr ...
- 使用Laravel提交POST请求出现The page has expired due to inactivity错误
任何指向 web 中 POST, PUT 或 DELETE 路由的 HTML 表单请求都应该包含一个 CSRF 令牌(CSRF token),否则,这个请求将会被拒绝.
- laravel 对于ajax请求返回的数据
ajax在调试器中的位置 XHR 代表 XMlHTTPREQUET 一般ajax请求php的时候我们需要给返回什么数据呢? 一般我都是直接renturn 数组的 其实也没啥问题 但是还是感觉第三种写 ...
随机推荐
- IT English Collection(9) of Objective-C
1 前言 今天我们来解除一篇有关Objective-C的介绍文章,详情如下. 2 详述 2.1 原文 Objective-C defines a small but powerful set of e ...
- android 中文件加密 解密 算法实战
现在项目里面有一个需求,本项目里面下载的视频和文档都不允许通过其他的播放器播放,在培训机构里面这样的需求很多.防止有人交一份钱,把所有的课件就拷给了别人.这样的事情培训机构肯定是不愿意的.现在我项目里 ...
- VCS仿真生成fsdb文件(Verilog)
VCS仿真生成fsdb文件(Verilog) 一.环境 Linux 平台 csh环境 VCS 64bit Verdi3 二.开始仿真 1. 联合仿真环境配置 a.在testbench中加入如下语句: ...
- VMware SphereESXi上安装虚拟机
VMware SphereESXi上安装虚拟机 创建新虚拟机 此处以CentOS为例 注意:配置上传的系统文件位置及启动项
- Gstreamer 中的playback插件
1. PLAYBACK插件基本介绍 在早期的版本中同时存在playbin和playbin2,但是在最新的版本中,playbin2已经稳定,取代了playbin, playbin不再进行维护.下面是官网 ...
- LAMP架构搭建+Discuz论坛搭建【weber出品必属精品】
一. 本机简介: 本机系统: CentOS-6.4-x86_64 主机名:oracle.ywb IP地址:192.168.146.129 二. 在Linux环境下安装Apache步骤 ...
- html5响应式布局
1.media控制布局 <link type="text/css" rel="stylesheet" href="css04.css" ...
- JS文件中加载jquery.js
原文链接:http://blog.csdn.net/whatday/article/details/39553451 最近有一个需求: 1.在一个html中只能引入一个JS文件 不能有JS代码和其他J ...
- css实现超连接按钮形式显示
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- EF数据迁移(当模型改变时更新数据库)
https://msdn.microsoft.com/zh-CN/data/jj591621 Enable-Migrations Add-Migration 名称 Update-Database –V ...