Laravel redirect () -> send () не останавливает приложение полностью - PullRequest
0 голосов
/ 17 апреля 2020

Я могу ошибиться, но у меня сложилось впечатление, что redirect()->send() заставит приложение остановить и перенаправить пользователя. Оказывается, это отчасти так, но не полностью.

Предположим, у нас есть следующая функция.

function validate()
{
    $validator = ... // a working implementation

    if ($validator->fails()) {
        redirect()->back()->withErrors($validator)->withInput()->with(['_type' => $type])->send();
    }
}

Эта функция может быть вызвана во время выполнения запроса. Если это успешно, ничего не должно происходить.

Пример использования:

function something(Request $request)
{
    $this->validate();
    \Log::debug('Running like a mad man!');
}

Если validate() не дает сбоя, он должен записать сообщение об отладке. Если это не удастся, мы бы хотели, чтобы он перенаправил.

Конечно, мы можем добавить logi c в something(), но мы предпочитаем этого не делать.

В нашем случае Log::debug, всегда бежит. Сначала я думал, что это произошло только в Laravel 5.8, но, по-видимому, у нас есть эта проблема и в более старых версиях.

Вы не можете использовать die() или подобное после перенаправления, так как это возвращает 419. I Я не в курсе внутренних дел Laravel, но я предполагаю, что у него не будет возможности установить его сессию.

Это что-то, что мы можем решить, не добавляя logi c в something()?

...