在 Laravel 5 中扩展请求类

2022-08-31 00:16:51

我是Laravel的新手(只有经历过Laravel 5,所以这里没有遗产挂断)

我想知道如何扩展核心请求类。除了如何扩展它之外,我想知道这样做是否是一个明智的设计决策。

我已经通读了文档(特别是关于注册服务提供商以及它为依赖容器中的条目提供Facades访问权限的方式) - 但我可以看到(并发现)没有办法用我自己的实例替换实例\Illuminate\Http\Request


答案 1

这是官方文档:请求生命周期

应用程序/Http/自定义请求的内容.php

<?php namespace App\Http;

use Illuminate\Http\Request as BaseRequest;

class CustomRequest extends BaseRequest {
    // coding
}

将此行添加到公共/索引.php

$app->alias('request', 'App\Http\CustomRequest');

app = require_once __DIR__.'/../bootstrap/app.php';

更改公共/索引处的代码.php

Illuminate\Http\Request::capture()

App\Http\CustomRequest::capture()

答案 2

我今天正在研究同样的问题,我认为值得一提的是,你可能会改变

Illuminate\Http\Request::capture()

App\Http\CustomRequest::capture()

无需添加行

$app->alias('request', 'App\Http\CustomRequest');

因为内部方法 laravel 实际上将提供的类绑定到服务容器,并将“request”作为键capture()


推荐