Я могу ошибиться, но у меня сложилось впечатление, что 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()
?