laravel基础课程---6、请求(如何获取当前 HTTP 请求的实例)

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']);

二、内容在总结中

 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/10834800.html