Как получить сессию в Laravel 5.6? - PullRequest
0 голосов
/ 13 ноября 2018

Функция редактирования

 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 голосов
/ 13 ноября 2018

Laravel предоставляет вспомогательные функции, и одна из них session()

Пример:

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

Попробуйте вывести переменную с помощью dd (), еще одной очень полезной вспомогательной функции в среде Laravel..

0 голосов
/ 13 ноября 2018
 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 1004 * и все равно получите 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

0 голосов
/ 13 ноября 2018

Согласно документации laravel вы можете получить ее, как показано ниже

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

Также laravel предоставит вам функцию отладки dd();, которая будет отлаживать предоставленную переменную, поэтому вам не нужно использовать die()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...