Laravel 4 用户请求中的数据

来源:互联网 发布:java 异常 编辑:程序博客网 时间:2024/06/05 07:42

当前请求数据

获取用户提交的所有数据

$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.phpRoute::get('/', function(){    return Redirect::to('new/request')->withInput();});

以上操作相当于:

// app/routes.phpRoute::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.phpRoute::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.phpRoute::get('/', function(){    $cookie = Cookie::forever('low-carb', 'almond cookie');    return Response::make('Nom nom.')->withCookie($cookie);});

删除指定 Cookies

Cookie::forget('low-carb');
0 0
原创粉丝点击