【问题标题】:Override Laravel Spark controller method覆盖 Laravel Spark 控制器方法
【发布时间】:2020-05-15 07:57:16
【问题描述】:

我正在尝试使用 Laravel Spark,作为测试,我想覆盖“创建 API 令牌”请求。

我注意到正在使用的端点,当用户应该创建 API 令牌时是这样的:

POST     | settings/api/token | Laravel\Spark\Http\Controllers\Settings\API\TokenController@store

所以根据他们的guide on customization 你应该使用他们的Spark::swap 方法。

所以我尝试将以下代码添加到SparkServiceProivder@booted,但它似乎不起作用:

use Laravel\Spark\Http\Controllers\Settings\API\TokenController;

use Laravel\Spark\Http\Requests\Settings\API\CreateTokenRequest;

Spark::swap(
    TokenController::class . '@store',
    function(CreateTokenRequest $request) {
        exit('Hello World');
    }
);

我做错了什么?

【问题讨论】:

    标签: php laravel laravel-spark


    【解决方案1】:

    我的建议是在 SparkServiceProvider.php 注册函数中使用这样的代码:

    $this->app->singleton(
        'Laravel\Spark\Http\Controllers\Auth\RegisterController',
        'App\Http\Controllers\RegistrationController'
    );
    

    然后用 Laravel\Spark\Http\Controllers\Auth\RegisterController 扩展 App\Http\Controllers\RegistrationController 并更改您需要的项目。

    【讨论】:

    • 只是一个例子,基本上你可以对 Laravel\Spark\Http\Controllers\Settings\API\TokenController 做同样的事情
    • $this->app->singleton( \Laravel\Spark\Http\Controllers\Auth\RegisterController:class, \App\Http\Controllers\RegistrationController::class );现在也可以了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 2011-12-05
    相关资源
    最近更新 更多