Переопределить метод контроллера Laravel Spark

Я пытаюсь немного поиграть с Laravel Spark, и в качестве теста я хотел бы переопределить запрос «Создать токен API».

Я заметил, что конечная точка используется, когда пользователь должен создать токен API:

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

Поэтому, согласно их руководству по настройке, вы должны использовать их метод 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');
    }
);

Что я делаю не так?


person FooBar    schedule 29.01.2020    source источник


Ответы (1)


Я бы предложил использовать такой код в функции регистрации SparkServiceProvider.php:

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

А затем расширьте App\Http\Controllers\RegistrationController с помощью Laravel\Spark\Http\Controllers\Auth\RegisterController и измените необходимые элементы.

person Dhrupad Shrivastava    schedule 09.06.2020
comment
Просто пример, в основном вы можете сделать то же самое для Laravel\Spark\Http\Controllers\Settings\API\TokenController - person Dhrupad Shrivastava; 09.06.2020
comment
$this-›app-›singleton( \Laravel\Spark\Http\Controllers\Auth\RegisterController:class, \App\Http\Controllers\RegistrationController::class ); работает и сейчас. - person Shawn H; 01.06.2021