请求与输入
基本输入
您可以通过一些简单的方法访问所有用户输入。您不需要担心请求使用的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');
NOTE
一些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'));
NOTE
您可以使用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')
{
//
}