【问题标题】:$request->session didn't work in Laravel 5.3 resource controller$request->session 在 Laravel 5.3 资源控制器中不起作用
【发布时间】:2017-03-14 18:22:34
【问题描述】:

首先,我已经检查了在其他控制器中(不是在资源控制器中)我的会话运行良好,但是当我在资源控制器中执行此操作时,我的获取会话代码不起作用。

这是我的资源控制器

  <?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

//tambahan
use DB;
use Session;

//model
use App\_admins;
use App\Mahasiswas;

class MahasiswaController extends Controller
{
    protected $data;
    protected $token;

    public function __contruct(){
        $this->data = array();
        $this->middleware(function ($request, $next) {
            $this->token = $request->session()->get('_admin_id');
            if (!$request->session()->has('_admin_id')) {
                abort(404);
            }
            return $next($request);
        });
    }

    private function user($token){
        $this->data['query'] = _admins::find($token);
    }

    public function index(){
        echo $this->token;
    }

还有更多的公共功能,但它仍然是空的,所以我没有在这里展示它以避免混淆。这是我在 web.php 中的路线:

Route::group(['namespace' => 'Admin'],function(){

    Route::resource('/admin/mahasiswa','MahasiswaController');
    Route::resource('/admin/nilai','NilaiController');

});

【问题讨论】:

  • 产生任何错误?您在构造函数中调用$request,但我不认为它是一个参数?尝试输入提示,例如:__construct(Request $request)
  • @camelCase 好吧,我补充一下,但它仍然一样,我仍然没有从我的会话中获取任何数据,此代码在其他控制器(不是资源控制器)中完美运行
  • 如果你的dd($request-&gt;session) 在你的constructor 中返回null 吗?
  • 你知道吗,我记得这是正常的,因为会话中间件尚未在构造函数中运行。我敢打赌你可以在构造函数之外访问会话,对吧?
  • 是的,你说得对,哇!现在如何修复它,我只想从我的控制器调用它

标签: php laravel oop session laravel-5.3


【解决方案1】:

5.3 中的中间件尚未在constructor 中运行,因此您无法收集session 数据。但是使用基于闭包的方法,您应该能够通过以下方式访问它:

$this->middleware(function($request, $next) {
    // Get the session value (uses global helper)
    $this->token = session('_admin_id');

    // If the value is null, abort the request
    if (null === $this->token) abort(404);

    return $next($request);
});

【讨论】:

    猜你喜欢
    • 2020-11-19
    • 1970-01-01
    • 2022-12-20
    • 2020-03-11
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    相关资源
    最近更新 更多