国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

laravel獲取不到session的三種解決辦法【推薦】

2024-05-05 00:05:24
字體:
來源:轉載
供稿:網友

問題:引用第三方類庫時,使用全局函數session()可以保存session,但是獲取不到

1、路由置于 web 中間件下,修改app/Http/Kernel.php文件,如下

protected $middlewareGroups = [  //中間件web  'web' => [   /App/Http/Middleware/EncryptCookies::class,   /Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse::class,   //看到這里了嗎!StartSession!!!!要把路由放在這個中間件了才會啟動Session!!   /Illuminate/Session/Middleware/StartSession::class,   /Illuminate/View/Middleware/ShareErrorsFromSession::class,   /App/Http/Middleware/VerifyCsrfToken::class,  ],   'api' => [   'throttle:60,1',  ], ];

2、修改路由寫法,如下

//兩種路由中間件寫法各人喜好!Route::get('/', function () { //路由放在這里})->middleware('web'); Route::group(['middleware' => ['web']], function () { //路由放在這里});//routes.php

3、Laravel不用php原生的session,那么在controller之后應該做了一些事情,將session寫入到文件中,而不是每次put操作都寫操作,這樣會IO操作太頻繁的,影響性能的。

查看調用相關的代碼。laravel編譯后,在bootstrap/compiled.php中

class Middleware implements HttpKernelInterface{ ... public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true) {  $this->checkRequestForArraySessions($request);  if ($this->sessionConfigured()) {   $session = $this->startSession($request); // 啟動session   $request->setSession($session);  }  $response = $this->app->handle($request, $type, $catch); // 調用controller的method  if ($this->sessionConfigured()) {   $this->closeSession($session);   //關閉session   $this->addCookieToResponse($response, $session);  }  return $response; } ...  protected function closeSession(SessionInterface $session) {  $session->save(); // 保存session  $this->collectGarbage($session); }}

可以看見,在調用完controller之后,調用了session->save()的方法,來主動的保存session。這樣session才能落地保存起來,如果在controller或者view里面寫了exit;,那么session是不會被保存的,除非主動的寫Session::save()才能手工的保存起來。或者把die();exit();換成return!


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 桃江县| 开江县| 抚顺县| 灵宝市| 潜江市| 吕梁市| 昆明市| 景谷| 新干县| 汽车| 阜新市| 宣威市| 大关县| 肇州县| 榆树市| 历史| 扬州市| 开阳县| 齐齐哈尔市| 惠州市| 福建省| 渝中区| 沂源县| 同仁县| 大厂| 东乌珠穆沁旗| 马尔康县| 友谊县| 沭阳县| 丹阳市| 石嘴山市| 政和县| 沙河市| 中西区| 宁远县| 乐亭县| 乐亭县| 三河市| 新乐市| 营口市| 叶城县|