如何在Laravel 5.6中检索会话?

时间:2018-11-13 08:47:10

标签: php laravel laravel-5

编辑功能

 public function editNotice(Request $request,$id=null){
   if(Session::has('idSession')){
         if($request->isMethod('post')){

            $data = $request->all();
            $test = $data['death_name'];
            Session::put('death_name',$test);


    } else {
      return redirect('/user')->with('flash_message_error','Please Login First to access..');
    }
}

verifyEditNotice函数

public function verifyEditNotice(Request $request,$id=null){

    $new = Session::get('death_name');
      echo $new;die;
 }

我已在编辑功能的会话中保存了死亡名称,我想在验证编辑功能中检索会话的值。

但是问题是当我检索到它显示为空时。

如何在另一个函数中获取值。

3 个答案:

答案 0 :(得分:1)

根据laravel documentation,您可以像下面这样

public function verifyEditNotice(Request $request,$id=null){
   $session_value = $request->session()->get('death_name');
    dd($session_value); // debug it and die 
}

laravel还为您提供了调试功能dd();,它将调试提供的变量,因此您无需使用die()

答案 1 :(得分:0)

Laravel提供帮助程序功能,其中之一是session()

示例:

session()->flash('success', 'This is a flash message!');
or in your case
session()->get('death_name');

尝试使用dd()转储变量,这是Laravel框架中另一个非常有用的辅助函数。

答案 2 :(得分:0)

 public function editNotice(Request $request,$id=null){
     if(Session::has('idSession')){
         // 1. First try
         dd($request->all());  //check if control gets to this line


       if($request->isMethod('post')){
          // 2. Second try 
          dd($request->all());  // check if control gets to this line

          $data = $request->all();
          $test = $data['death_name'];

         // Session::put('death_name',$test);
          $request->session()->put('death_name', $test);


          ///////////////////// 3. Third try
          dd(session('death_name')); // check if control gets to this line
     } else {
       return redirect('/user')->with('flash_message_error','Please Login First to 
         access..');
    }
 }

使用上述代码进行调试:

如果您进入第3步,但仍然为NULL /空

转到您的{project_root}/storage文件夹,并将775的权限和所有权授予www-data

使用以下命令:

{project_root}> sudo chown -R www-data:www-data storage/

{project_root}> sudo chmod -R 775 storage/

如果上述方法不起作用,请尝试使用777

如果777也无效

验证您的配置。

https://laravel.com/docs/5.7/session#configuration