2017-01-17 5 views
2

Обновлены после некоторых исследований
После некоторых исследований я заключаю, что мои сессии не сохраняется, пока я не сохраняю их в явном виде, ниже кода работает хорошо, но почему? ???Ref hereLaravel вспышка или сеанс сообщений не истекающие [не поддерживаются Обновлено]

Session::put('lets_test', 2); 
Session::save(); 

Старый Вопрос
Я новичок в Laravel 5.3, и застрял на проблему. Мои сообщения Laravel Session или флэш не истекающий они показывают каждый раз, когда страница перезагружается, пока я не использовать 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'), но не повезло. Обновление моего сообщения после некоторых исследований. Я немного приблизился к своей проблеме на reading this post on stack, потому что этот вопрос точно такой же, как и у моей проблемы, но, к сожалению, он по-прежнему сохраняется, я изменил хранилище сеансов из файла в базу данных (в случае разрешений файла для хранения в каталоге хранилища). Какие могут быть другие возможности?

Пожалуйста, помогите, заблаговременно.

+1

Можете ли вы показать свой код контроллера? Таким образом, в основном флеш-сеанс будет удален после перенаправления на новый URL-адрес или страницу. Поскольку вы снова загружаете одну и ту же страницу, контроллер снова устанавливает сеанс и отображается. –

+0

Спасибо, код обновлен –

ответ

0

В конечном счете, мне удалось найти решение для моей проблемы, не поддерживая сеансы. Я не думаю, что его проблема связана с разрешением файла. Теперь я сохраняю свой сеанс явно и явно удаляю его. сделал класс Helper добавлены два метода

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 

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

0

попробовать это:

if(isset($_SESSION['user_message'])) { 
     $message = $_SESSION['user_message']; 
     unset($_SESSION['user_message']); 
     return $message; 
    } 
+0

Этот сниппет может быть хорошим с ванилью, но не с laravel. Я обновил свой вопрос. –

0

В вашей (Laravel) лезвия добавить $request->session()->forget('key'); или Session::forget('key'); в конце цикла, если это закончится или удалить сессию этого ключа. Это может помочь вам получить дополнительную информацию о сессии laravel 5.3 visit laravel 5.3

 Смежные вопросы

  • Нет связанных вопросов^_^