您可以使用一些简单的方法访问所有用户输入。 使用Inputfacade时,您无需担心请求的HTTP谓词,因为所有谓词都以相同的方式访问输入。 全局input helper function是Input::get的别名。
$name = Input::get('name');
$name = Input::get('name', 'Sally');
if (Input::has('name')) {
//
}
$input = Input::all();
$input = Input::only('username', 'password');
$input = Input::except('credit_card');
处理带有“数组”输入的表单时,可以使用点表示法来访问数组:
$input = Input::get('products.0.name');
注意: 一些JavaScript库(如Backbone)可以将输入作为JSON发送到应用程序。 您可以通过
Input::get访问此数据,就像正常一样。
默认情况下,October创建的所有Cookie都会加密并使用身份验证代码进行签名,这意味着如果客户端更改了这些Cookie,则会将其视为无效。 在cookie.unencryptedCookies配置密钥中命名的cookie将不会被加密。
注意: Cookie使用APP_KEY加密,因此如果客户知道APP_KEY,则可能会由客户制作Cookie。 如果您的应用程序的加密密钥掌握在恶意方的手中,则该方可以使用加密密钥创建cookie值,并利用继承到PHP对象序列化/反序列化的漏洞,例如在应用程序中调用任意类方法。 为了缓解这种情况,如果您怀疑它已被泄露,请务必轮换您的APP_KEY,并确保始终确认您从cookie中收到的数据是在您使用它之前所预期的。
$value = Cookie::get('name');
$response = Response::make('Hello World');
$response->withCookie(Cookie::make('name', 'value', $minutes));
如果您想在创建响应之前设置cookie,请使用Cookie::queue方法。 cookie将自动附加到您的应用程序的最终响应中。
Cookie::queue($name, $value, $minutes);
$cookie = Cookie::forever('name', 'value');
如果您不希望某些cookie被加密或解密,您可以在配置中指定它们。 例如,当您想要通过cookie将数据从前端传递到服务器端后端时,这很有用,反之亦然。
将不应加密或解密的cookie的名称添加到config/cookie.php配置文件中的unencryptedCookies参数。
/*
|--------------------------------------------------------------------------
| 没有加密的Cookies |-------------------------------------------------------------------------- | | OctoberCMS默认加密/解密cookie。 您可以指定cookie | 这里不应该加密或解密。 这很有用 | 例如,当您想要将数据从前端传递到服务器端后端时 | 通过cookie,反之亦然。 | */
'unencryptedCookies' => [
'my_cookie',
],
或者对于插件,您也可以从插件的Plugin.php动态添加这些插件。
public function boot()
{
Config::push('cookie.unencryptedCookies', "my_cookie");
}
您可能需要保留一个请求的输入,直到下一个请求。 例如,在检查表单是否存在验证错误后,您可能需要重新填充表单。
####flash 输入到会话
Input::flash();
Input::flashOnly('username', 'email');
Input::flashExcept('password');
由于您经常需要将flash输入与重定向到上一页相关联,因此您可以轻松地将输入闪烁链接到重定向。
return Redirect::to('form')->withInput();
return Redirect::to('form')->withInput(Input::except('password'));
注意: 您可以使用Session类在请求之间刷新其他数据。
Input::old('username');
$file = Input::file('photo');
if (Input::hasFile('photo')) {
//
}
file方法返回的对象是Symfony\Component\HttpFoundation\File\UploadedFile类的一个实例,它扩展了PHPSplFileInfo类,并提供了各种与文件交互的方法。
if (Input::file('photo')->isValid()) {
//
}
Input::file('photo')->move($destinationPath);
Input::file('photo')->move($destinationPath, $fileName);
$path = Input::file('photo')->getRealPath();
$name = Input::file('photo')->getClientOriginalName();
$extension = Input::file('photo')->getClientOriginalExtension();
$size = Input::file('photo')->getSize();
$mime = Input::file('photo')->getMimeType();
Request类提供了许多方法来检查应用程序的HTTP请求,并扩展了Symfony\Component\HttpFoundation\Request类。 这儿是一些精彩片段。
$uri = Request::path();
$method = Request::method();
if (Request::isMethod('post')) {
//
}
if (Request::is('admin/*')) {
//
}
$url = Request::url();
$segment = Request::segment(1);
$value = Request::header('Content-Type');
$value = Request::server('PATH_INFO');
if (Request::secure()) {
//
}
if (Request::ajax()) {
//
}
if (Request::isJson()) {
//
}
if (Request::wantsJson()) {
//
}
Request::format方法将根据HTTP Accept标头返回请求的响应格式:
if (Request::format() == 'json') {
//
}