【问题标题】:Laravel 5.3 - How to keep the session message until the users logs outLaravel 5.3 - 如何保留会话消息直到用户注销
【发布时间】:2017-04-07 06:29:54
【问题描述】:

我在注册后向用户发送欢迎消息。我在控制器中修改了 trait 方法,如下所示:

public function register(Request $request)
    {
        $this->validator($request->all())->validate();

        event(new Registered($user = $this->create($request->all())));

        $this->guard()->login($user);

        Session::set('message','messages.welcome');

        return redirect($this->redirectPath())->with('message', 'messages.welcome');
    }

我也尝试过 $request->session()->put('message','messages.welcome'); 而不是 Session::set('message','messages.welcome'); 但它给了我相同的结果。

然后我在视图中显示消息,如下所示:

@if (session('message'))
   @include(session('message'))
@endif

但是当我刷新视图时消息消失了,我怎样才能在用户注销之前保留这些消息?

【问题讨论】:

    标签: php session laravel-5.3


    【解决方案1】:

    尝试使用:

    $request->session()->put('message','messages.welcome');
    

    文档只推荐使用辅助函数或$request 来处理会话:https://laravel.com/docs/5.3/session#storing-data

    【讨论】:

    【解决方案2】:

    先写use语句

    use Illuminate\Support\Facades\Session;
    

    然后修改你的方法:

    public function register(Request $request)
       {
            $this->validator($request->all())->validate();
    
            event(new Registered($user = $this->create($request->all())));
    
            $this->guard()->login($user);
    
            #$request->session()->put('message', 'messages.welcome'); #this will also work
    
            Session::put('message', 'messages.welcome');
    
            return redirect($this->redirectPath());
        }
    

    然后当您需要它时,只需拨打Session::get('message');

    【讨论】:

      猜你喜欢
      • 2016-07-13
      • 2017-11-20
      • 2012-10-12
      • 1970-01-01
      • 2011-09-01
      • 2018-03-03
      • 2016-07-14
      • 2016-11-26
      • 2018-03-01
      相关资源
      最近更新 更多