Laravel: почему каждый маршрут выполняется дважды?


Laravel: почему каждый маршрут выполняется дважды?

17.12.2019 07:01:10 Просмотров 67 Источник

В моем приложении laravel я заметил, что каждый маршрут выполняется дважды, и не могу понять, почему

например:

Route::get('called_twice', function () {
   dump('---');
});

возвращаемая строка '- - - ' дважды

enter image description here

Редактировать:

пытаясь отследить источник проблемы, я поместил дамп в файл

src / Illuminate/Foundation / Http / Kernel.РНР

protected function sendRequestThroughRouter($request)
{
    $this->app->instance('request', $request);

    Facade::clearResolvedInstance('request');

    $this->bootstrap();
dump('kernel');
    return (new Pipeline($this->app))
                ->send($request)
                ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware)
                ->then($this->dispatchToRouter());
}

и еще один дамп в конструкторе файла

src / осветить / трубопровод / трубопровод.РНР

    public function __construct(Container $container = null)
{
    dump('pipeline');
    $this->container = $container;
}

и я получаю это:

enter image description here

класс конвейера называется много раз

Laravel 6.8.0

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/59377912/laravel-why-every-route-is-executed-twice#comment104948258_59377912
Где он определился?
https://stackoverflow.com/questions/59377912/laravel-why-every-route-is-executed-twice#comment104948397_59377912
он определяется в routes/api.PHP-файл
https://stackoverflow.com/questions/59377912/laravel-why-every-route-is-executed-twice#comment104948761_59377912
Вы случайно не используете WAMP
https://stackoverflow.com/questions/59377912/laravel-why-every-route-is-executed-twice#comment104948823_59377912
@AlecJoy нет, работает php artisan serve

Ответы - Laravel: почему каждый маршрут выполняется дважды? / Laravel: why every route is executed twice?

Является ответом!
Naco

17.12.2019 08:25:29

Я думаю, что $next ($request), вероятно, вызывается дважды в промежуточном программном обеспечении. Причина в том, что ответ передается через каждое промежуточное программное обеспечение (каналы), прежде чем он возвращается обратно. Поэтому, если $next ($request) вызывается дважды в одном промежуточном программном обеспечении, нормально, что все каналы будут вызваны снова.

Помочь в развитии проекта:
Закрыть X