当前请求数据
获取用户提交的所有数据
$data = Input::all();
注意:这里获取到的数据包含 GET 和 POST 提交的所有数据,并且 GET 的优先级更高。
所以类似下面的提交将会得到这样的数据 array(2) { ["foo"]=> string(3) "get" ["baz"]=> string(3) "get" }
。
<!-- app/views/form.blade.php -->
<form action="{{ url('/') }}?foo=get&baz=get" method="POST">
<input type="hidden" name="foo" value="bar" />
<input type="hidden" name="baz" value="boo" />
<input type="submit" value="Send" />
</form>
获取指定数据
$data = Input::get('foo');
用户若未传递 foo
参数,则默认为 NULL
,此时可以为其设定默认值:
$data = Input::get('foo', 'defaultValue');
判断请求中是否包含某一参数
$result = Input::has('foo');
获取请求中的部分数据
- 以下方法皆可
$result = Input::only('foo', 'baz');
$result = Input::only(array('foo', 'baz'));
当然还有排除法:
- 以下方法皆可
$result = Input::except('foo', 'baz');
$result = Input::except(array('foo', 'baz'));
之前请求的数据(旧数据)
闪存所有旧数据
在上一个请求 结束前 将用户数据闪存:
Input::flash();
闪存部分旧数据
Input::flashOnly('foo');
Input::flashOnly('first', 'second', 'third');
Input::flashOnly(array('first', 'second', 'third'));
当然,还有排除法:
Input::flashExcept('foo');
Input::flashExcept('first', 'second', 'third');
Input::flashExcept(array('first', 'second', 'third'));
旧数据的获取方法
在接下来的请求中,可以通过以下方法取出闪存的数据:
Input::old();
Input::old('first', 'second', 'third');
Input::old(array('first', 'second', 'third'));
请求重定向时的快捷闪存
// app/routes.php
Route::get('/', function()
{
return Redirect::to('new/request')->withInput();
});
以上操作相当于:
// app/routes.php
Route::get('/', function()
{
Input::flash();
return Redirect::to('new/request');
});
其它可用的快捷闪存方法:
return Redirect::to('new/request')->withInput(Input::only('foo'));
return Redirect::to('new/request')->withInput(Input::except('foo'));
用户上传的文件
获取文件对象
var_dump(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')->copy('/storage/directory'); // 复制文件到指定文件夹
Input::file('book')->rename('newName.pdf'); // 重命名
实际用例:
Route::post('handle-form', function()
{
$name = Input::file('book')->getClientOriginalName();
Input::file('book')->move('/storage/directory', $name);
return 'File was moved.';
});
Cookies
设置 和 获取 Cookies
// app/routes.php
Route::get('/', function()
{
$cookie = Cookie::make('low-carb', 'almond cookie', 30);
return Response::make('Nom nom.')->withCookie($cookie);
});
Route::get('/nom-nom', function()
{
$cookie = Cookie::get('low-carb', 'defaultValue');
var_dump($cookie);
});
判断指定 Cookies 是否存在
var_dump(Cookie::has('low-carb'));
设置长效 Cookies
// app/routes.php
Route::get('/', function()
{
$cookie = Cookie::forever('low-carb', 'almond cookie');
return Response::make('Nom nom.')->withCookie($cookie);
});
删除指定 Cookies
Cookie::forget('low-carb');