本文主要讲解了 Laravel 框架中请求与输入的概念以及示例, 非常的简单实用, 需要的朋友可以参考下
基本输入
Laravel 使用一种简单的方式来访问用户提交的信息 你可以用统一的方式来访问用户提交的信息, 而不用为用户提交信息的方式操心
获取一个用户提交的值
代码如下:
$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 来获取信息, 使用上无差别
Cookies
Laravel 会加密所有已创建的 cookie 信息, 并附加上授权码, 当客户端擅自修改 cookie 信息时, 该 cookie 将被废弃, 从而保证安全性
获取一个指定的 cookie 值
代码如下:
$value = Cookie::get('name');
添加一个新的 cookie 键值对
代码如下:
- $response = Response::make('Hello World');
- $response->withCookie(Cookie::make('name', 'value', $minutes));
加入下一个 Response 的 Cookie 队列之中
如果想在 Response 创建之前设置 cookie, 可以使用 Cookie::queue() 方法 cookie 将通过应用框架自动添加到最终的 Response 之中
代码如下:
Cookie::queue($name, $value, $minutes);
创建一个永不过期的 cookie 键值对
代码如下:
$cookie = Cookie::forever('name', 'value');
用户提交信息持久化
有时可能需要在用户的多个请求之间持久化用户提交的信息 比如, 当用户提交的信息验证失败重新返回提交信息页面时还原用户的输入
将用户提交的信息存入 Session
代码如下:
Input::flash();
把指定的用户提交的信息存入 Session
代码如下:
- Input::flashOnly('username', 'email');
- Input::flashExcept('password');
如果你需要关联持久用户提交的信息的操作和重定向操作, 可以使用如下的链式调用的方法:
代码如下:
- 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 类的实例, 该类继承自 PHP 的 SplFileInfo 类, 并提供了大量操作该用户上传的文件的方法
移动一个已上传的文件
代码如下:
- Input::file('photo')->move($destinationPath);
- Input::file('photo')->move($destinationPath, $fileName);
获取一个已上传的文件在服务器的真实路径
代码如下:
$path = Input::file('photo')->getRealPath();
获取一个已上传的文件的大小
代码如下:
$size = Input::file('photo')->getSize();
获取一个已上传的文件的 MIME 类型
代码如下:
$mime = Input::file('photo')->getMimeType();
用户请求的详细信息
Request 类提供了许多 方法 用于获取关于请求的详细信息, 该类继承自 Symfony\Component\HttpFoundation\Request 类 下面提供了几个具有代表性的方法:
获取请求 URI
$uri = Request::path();
判断请求路径是否符合指定模式
代码如下:
- if (Request::is('admin/*'))
- {
- //
- }
获取请求 URL
$url = Request::url();
获取请求 URI 信息
$segment = Request::segment(1);
获取请求头里的 Content-Type 信息
$value = Request::header('Content-Type');
获取 $_SERVER 数组里指定的值
$value = Request::server('PATH_INFO');
判断是否是使用 ajax 请求
代码如下:
- if (Request::ajax())
- {
- //
- }
判断请求是否使用 https 连接
代码如下:
- if (Request::secure())
- {
- //
- }
检测请求的响应格式
Request::format 方法基于 HTTP 请求头的 Accept 信息返回客户端希望获取的响应格式:
代码如下:
- if (Request::format() == 'json')
- {
- //
- }
来源: https://www.php1.cn/detail/php-d4b81d4593.html