Как отобразить флеш-сообщение вместе с перенаправлением без использования Session в laravel? - PullRequest
0 голосов
/ 01 октября 2018

У меня есть часть кода, которая проверяет файл, загруженный пользователем.Если я обнаружил, что этот файл не является действительным файлом png / jpg / jpeg, я деактивирую пользователя и выхожу из него с сайта, удаляю его сеанс и затем перенаправляю его на страницу входа.Я хочу показать ему ошибку, что он / она пытается загрузить неверный файл.Я не могу найти что-либо о том, как отобразить его без использования сеанса.Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Например, если вы по какой-то причине не хотите использовать сессию, это простой код для отображения сообщения об ошибке в конкретном представлении, а затем мы даем пользователю ссылку для повторного входа в систему.

UploadController.php

public function myUpload(){

  //... some stuff and then logout the user, delete the session

  return view('uploadError', ['uploadError' => 'for some reason...']);
}

uploadError.blade.php

Error uploading the file: {{ $uploadError }}

<a href="/login">Login again</a>

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

0 голосов
/ 01 октября 2018

Вы можете создавать новые сеансовые сообщения после очистки сеанса, эти сообщения будут удалены после показа

контроллер

$is_valid // boolean 

if(!is_valid) {
// if file is not valid, do something
 ...
// clear all session
session()->flush()
// redirect user to login page and send session message
return redirect()->route("login")
                 ->with("message","Your file is not valid")
                 ->with("message_type","danger");

login.blade

@if(session()->has("message"))
<div class="alert alert-{{session("message_type")}}">
  <p> {{session("message")}} </p>
</div>
@endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...