Я использую Laravel 5.8 и мне нужно сохранить некоторые данные в сеансе. Это код моего контроллера:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PagesController extends Controller
{
public function index(Request $request)
{
$this->storeInSession($request);
dump(session()->all());
}
public function otherPage(Request $request)
{
$this->storeInSession($request);
dump(session()->all());
}
protected function storeInSession(Request $request)
{
if(!$request->session()->exists('landingpage')){
$request->session()->put('landingpage', $request->route()->getName());
}
}
}
Я создал защищенную функцию storeInSession
, которая хранит название маршрута, связанное со страницей, на которой пользователь впервые приземлился на веб-сайте. Тем не менее, переменная landingpage
меняется каждый раз, когда я перемещаюсь между двумя страницами (index и otherPage), что означает, что я не могу сохранить нужную целевую страницу и обнаружил, что laravel_session
cook * 1021 нет * в моем браузере.
Кроме того, _token постоянно меняется при каждом перемещении между двумя страницами.
Однако, когда я отправляю форму (которая выполняет запрос POST), * 1022 Появляется * session cook ie, и все начинает правильно сохраняться.
Я использую file
драйвер сеанса, life_time
равен 120, expire_on_close
равен false и encrypt
также равен false.
Я что-то не так делаю?