Обновлено после некоторых исследований
После некоторых исследований я пришел к выводу, что мои сеансы не поддерживаются до тех пор, пока я не сохраню их явно, ниже кода работает хорошо, но ПОЧЕМУ ???? Здесь
Session::put('lets_test', 2); Session::save();
Старый вопрос
Я новичок в laravel 5.3 и встал на проблему. Мои сеансы Laravel или Flash не истекают, они отображаются каждый раз, когда страница перезагружается, пока я не использую Session::flush()
Ниже мой код контроллера
<?php namespace App\Http\Controllers; use Session; use Auth; use Illuminate\Http\Request; use App\User; use App\Hospital; use App\Wpr; use Helper; class OperatorController extends Controller { public $user_detail; public function __construct() { $this->middleware('auth'); $this->middleware('operator'); } public function store (Request $request){ //Form is being submitted here //My logic here Session::flash('user_message', 'Thank You'); return redirect('/operator/wpr'); } }
Я также использовал Session::set('user_message', 4);
и вид лезвия
@if(Session::has('user_message')) <div class="message animated tada"> {{ Session::get('user_message') }} </div> @endif
Я пробовал с Session::forget('user_message')
но не повезло. Обновление моего сообщения после некоторых исследований. Я немного приблизился к своей проблеме, прочитав этот пост в стеке, потому что этот вопрос точно такой же, как и у моей проблемы, но, к сожалению, он по-прежнему сохраняется, я изменил хранилище сеансов из файла в базу данных (в случае, если разрешения на файлы для каталога хранилища) , Какие могут быть другие возможности?
Пожалуйста, помогите, спасибо заранее.
попробуй это:
if(isset($_SESSION['user_message'])) { $message = $_SESSION['user_message']; unset($_SESSION['user_message']); return $message; }
сif(isset($_SESSION['user_message'])) { $message = $_SESSION['user_message']; unset($_SESSION['user_message']); return $message; }
На вашем (Laravel) клинке добавьте $request->session()->forget('key');
или Session::forget('key');
в конце цикла if это завершает или удаляет сеанс этого ключа. Это может помочь вам получить дополнительную информацию о сеансе laravel 5.3 посетить laravel 5.3
В конечном счете, как-то мне удалось найти решение моей проблемы, не поддерживать сеансы. Я не думаю, что его проблема связана с разрешением файла. Теперь я сохраняю свой сеанс явно и явно удаляю его. В классе помощника добавлены два метода
public static function SetMessage($message, $type){ Session::put('user_message', $message); Session::put('user_message_type', $type); Session::save(); } public static function ForgetMessage(){ Session::forget('user_message'); Session::forget('user_message_type'); Session::save(); }
и в классе контроллера
Helper::SetMessage('Record updated successfully', 'success');
и в области просмотра лопаток tempalte
@if(Session::has('user_message')) <div class="alert alert-{{ Session::get('user_message_type') }}"> {{ Session::get('user_message') }} {{ Helper::ForgetMessage('user_message') }} </div> @endif
Надеюсь, это поможет кому-то, кто сталкивается с такой доброй проблемой. Но почему это так, все еще неизвестно, может быть, однажды я отправлю причину тоже. Больше предложений приветствуется, если это можно было бы сделать лучше.