请求与输入
基本输入
您可以通过几个简单的方法访问所有用户输入。您无需担心请求使用的 HTTP 动词,因为输入在所有动词中以相同的方式访问。
检索输入值
php
$name = Input::get('name');
如果输入值缺失则检索默认值
php
$name = Input::get('name', 'Sally');
确定输入值是否存在
php
if (Input::has('name'))
{
//
}
获取请求的所有输入
php
$input = Input::all();
仅获取请求输入的一部分
php
$input = Input::only('username', 'password');
$input = Input::except('credit_card');
在处理带有“数组”输入的表单时,您可以使用点表示法访问数组:
php
$input = Input::get('products.0.name');
一些 JavaScript 库,如 Backbone,可能会将输入作为 JSON 发送到应用程序。您可以像正常一样通过 Input::get
访问这些数据。
Cookies
Laravel 框架创建的所有 cookies 都是加密的,并带有身份验证代码,这意味着如果客户端更改了它们,它们将被视为无效。
检索 cookie 值
php
$value = Cookie::get('name');
将新 cookie 附加到响应
php
$response = Response::make('Hello World');
$response->withCookie(Cookie::make('name', 'value', $minutes));
将 cookie 排队到下一个响应
如果您希望在创建响应之前设置 cookie,请使用 Cookie::queue()
方法。该 cookie 将自动附加到应用程序的最终响应中。
php
Cookie::queue($name, $value, $minutes);
创建一个永久有效的 cookie
php
$cookie = Cookie::forever('name', 'value');
旧输入
您可能需要在一次请求中保留输入,直到下一次请求。例如,您可能需要在检查验证错误后重新填充表单。
将输入闪存到会话
php
Input::flash();
仅将某些输入闪存到会话
php
Input::flashOnly('username', 'email');
Input::flashExcept('password');
由于您通常希望在重定向到上一页时闪存输入,因此您可以轻松地将输入闪存链式调用到重定向中。
php
return Redirect::to('form')->withInput();
return Redirect::to('form')->withInput(Input::except('password'));
您可以使用 Session 类在请求之间闪存其他数据。
检索旧数据
php
Input::old('username');
文件
检索上传的文件
php
$file = Input::file('photo');
确定文件是否已上传
php
if (Input::hasFile('photo'))
{
//
}
file
方法返回的对象是 Symfony\Component\HttpFoundation\File\UploadedFile
类的一个实例,该类扩展了 PHP 的 SplFileInfo
类,并提供了多种与文件交互的方法。
确定上传的文件是否有效
php
if (Input::file('photo')->isValid())
{
//
}
移动上传的文件
php
Input::file('photo')->move($destinationPath);
Input::file('photo')->move($destinationPath, $fileName);
检索上传文件的路径
php
$path = Input::file('photo')->getRealPath();
检索上传文件的原始名称
php
$name = Input::file('photo')->getClientOriginalName();
检索上传文件的扩展名
php
$extension = Input::file('photo')->getClientOriginalExtension();
检索上传文件的大小
php
$size = Input::file('photo')->getSize();
检索上传文件的 MIME 类型
php
$mime = Input::file('photo')->getMimeType();
请求信息
Request
类提供了许多方法来检查您应用程序的 HTTP 请求,并扩展了 Symfony\Component\HttpFoundation\Request
类。以下是一些亮点。
检索请求 URI
php
$uri = Request::path();
检索请求方法
php
$method = Request::method();
if (Request::isMethod('post'))
{
//
}
确定请求路径是否匹配模式
php
if (Request::is('admin/*'))
{
//
}
获取请求 URL
php
$url = Request::url();
检索请求 URI 段
php
$segment = Request::segment(1);
检索请求头
php
$value = Request::header('Content-Type');
从 $_SERVER 中检索值
php
$value = Request::server('PATH_INFO');
确定请求是否通过 HTTPS
php
if (Request::secure())
{
//
}
确定请求是否使用 AJAX
php
if (Request::ajax())
{
//
}
确定请求是否具有 JSON 内容类型
php
if (Request::isJson())
{
//
}
确定请求是否请求 JSON
php
if (Request::wantsJson())
{
//
}
检查请求的响应格式
Request::format
方法将根据 HTTP Accept 头返回请求的响应格式:
php
if (Request::format() == 'json')
{
//
}