【问题标题】:Laravel 5.3: session destroying value after refresh pageLaravel 5.3:刷新页面后会话破坏值
【发布时间】:2017-08-30 13:27:38
【问题描述】:

我正在尝试在 Laravel 的负载基础控制器上存储一些数据,我使用 constructor 来执行此操作,并且构造函数成功执行。但是,当我在会话中存储值,然后下次刷新页面时,相同的会话值显示为空:

namespace App\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use App\Language;
use Session;
class Controller extends BaseController
{
   use AuthorizesRequests, DispatchesJobs, ValidatesRequests;

    function __construct()
    {
        if(Session::get('phrase') == null)
        {
            Session::put('phrase','test');
            dump(Session::get('phrase'));
        }
    }
}

访问方式:

class DashboardController extends Controller
{
  public function index()
  {
     if(!in_array(Auth::user()->role_id,[1,2])){
         return redirect()->route('orsers.list',['filters'=>'']);
     }
     return view('dashboard.index');
  }

我不明白我哪里错了??

【问题讨论】:

  • 您确定您没有清除某处的值吗?像Session::pull 代码中的任何地方?您是否在refresh 进程中切换中间件(或在您设置/读取会话之后)?你真的可以将会话值存储在驱动器上吗?也许您对会话存储文件夹具有只读权限?
  • no.. 我正在运行仪表板控制器索引功能,这里是它的代码...(检查更新的问题)
  • DashboardController 构造函数中的行为相同
  • 也许this 可以提供帮助,否则,测试范围太广,无法进一步评论。
  • 先生,我得到了答案we can't access the session or authenticated user in your controller's constructor because the middleware has not run yet.

标签: php laravel session laravel-5.3


【解决方案1】:

在您的 app/Http/Kernel.php 中重新排列以下 middlwaregroups...

protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

        'api' => [
            'throttle:60,1',
            'bindings',
        ],
    ];

如果您的 $middlewareGroups 已经这样订购,请告诉我,我们可以进一步调试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 2015-08-23
    • 2014-08-15
    • 1970-01-01
    • 2014-07-20
    • 2015-07-03
    • 2016-06-21
    相关资源
    最近更新 更多