laravel基础课程---6、请求(如何获取当前 HTTP 请求的实例)
一、总结
一句话总结:
依赖注入:通过依赖注入的方式来获取当前 HTTP 请求的实例:public function store(Request $request)
要通过依赖注入的方式来获取当前 HTTP 请求的实例,你应该在控制器方法中使用 IlluminateHttpRequest
类型提示。当前的请求实例将通过 服务容器 自动注入:
<?php namespace AppHttpControllers; use IlluminateHttpRequest; class UserController extends Controller { /** * 储存一个新用户。 * * @param Request $request * @return Response */ public function store(Request $request) { $name = $request->input('name'); // } }
1、如果控制器方法也有输入数据是从路由参数中传入,如何获取当前 HTTP 请求的实例?
只需将路由参数置于其他依赖之后(比如这里的$id):public function update(Request $request, $id)
|||-begin
Route::put('user/{id}', 'UserController@update');
|||-end
<?php namespace AppHttpControllers; use IlluminateHttpRequest; class UserController extends Controller { /** * 更新指定的用户。 * * @param Request $request * @param string $id * @return Response */ public function update(Request $request, $id) { // } }
2、请求中获取地址的常用方法及注意?
输出当前url地址(包含查询字符串):echo $request->fullUrl();
获取URL的路由:echo $request->path();
获取URl地址(返回不带有查询字符串的 URL):echo $request->url();
判断路由是否是request:var_dump($request->is('abc'));
// 输出当前url地址 echo $request->fullUrl(); http://www.yzmedu2.com/request?name=100 // 获取URL的路由 echo $request->path(); request // 获取URl地址初参数 echo $request->url(); http://www.yzmedu2.com/request // 判断路由是否是request 返回值 true|false var_dump($request->is('abc'));
3、判断是get请求还是post请求实例(比如一个方法即可接受get请求又可接收post请求)?
if ($request->isMethod('GET'))
public function add(Request $request){ // 判断当前是get请求 if ($request->isMethod('GET')) { // 加载添加页面 return view('add'); }else{ // 数据库的入库操作 echo "插入数据库"; } }
4、如何获取和判断当前的请求类型?
获取请求类型:echo $request->method();
判断当前的请求是不是get请求:var_dump($request->isMethod('GET'));
// 判断当前的请求类型 echo $request->method(); // 判断当前的请求是不是get请求 返回值 true|false var_dump($request->isMethod('GET'));
5、获取所有的请求数据,比如get、post、put等等?
$_GET和$_POST中无法获取put类型的数据
all方法:$data=$request->all();
6、获取特定字段的请求数据,比如请求数据中的name字段?
input方法:echo $request->input('name');
7、请求中判断字段是否存在?
has方法:var_dump($request->has('username'));
8、请求中获取字段数据一些需要注意的?
设置默认值:input+键值对:echo $request->input('yao','强哥');
获取部分数据:only:$data1=$request->only(['name','pass']);
除了一些数据以外:except:$data1=$request->except(['_token','name']);
// 设置默认值 echo $request->input('yao','强哥'); // 获取部分数据 $data1=$request->only('name','pass'); $data1=$request->only(['name','pass']); // 除了一些数据以外 $data1=$request->except('_token','name'); $data1=$request->except(['_token','name']);