HTTP 请求
取得请求实例
通过 Facade
Request
facade 允许你访问当前绑定容器的请求。例如:
$name = Request::input('name');
切记,如果你在一个命名空间中,你必须导入 Request
facade,接着在类的上方声明 use Request;
。
通过依赖注入
要通过依赖注入的方式取得 HTTP 请求的实例,你必须在控制器中的构造函数或方法对该类使用类型提示。当前请求的实例将会自动由服务容器注入:
<?php namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class UserController extends Controller {
/**
* Store a new user.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$name = $request->input('name');
//
}
}
如果你的控制器也有从路由参数传入的输入数据,只需要将路由参数置于其他依赖之后:
<?php namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class UserController extends Controller {
/**
* Update the specified user.
*
* @param Request $request
* @param int $id
* @return Response
*/
public function update(Request $request, $id)
{
//
}
}
取得输入数据
取得特定输入数据
你可以通过 Illuminate\Http\Request
的实例,经由几个简洁的方法取得所有的用户输入数据。不需要担心发出请求时使用的 HTTP 请求,取得输入数据的方式都是相同的。
$name = Request::input('name');
取得特定输入数据,若没有则取得默认值
$name = Request::input('name', 'Sally');