Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $request->;会议没有';t在Laravel 5.3资源控制器中工作_Php_Laravel_Oop_Session_Laravel 5.3 - Fatal编程技术网

Php $request->;会议没有';t在Laravel 5.3资源控制器中工作

Php $request->;会议没有';t在Laravel 5.3资源控制器中工作,php,laravel,oop,session,laravel-5.3,Php,Laravel,Oop,Session,Laravel 5.3,首先,我已经在其他控制器(不是资源控制器)中检查了我的会话是否工作得很好,但是当我在资源控制器中检查时,我的get会话代码没有工作 这是我的资源控制器 <?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use App\Http\Controllers\Controller; //tambahan use DB; use Session; //model use App\_admins

首先,我已经在其他控制器(不是资源控制器)中检查了我的会话是否工作得很好,但是当我在资源控制器中检查时,我的get会话代码没有工作

这是我的资源控制器

  <?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;
    }

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

$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);
});

有什么错误吗?您正在构造函数中调用
$request
,但我不将其视为参数?试着输入类似的提示:
\uu construct(Request$Request)
@camelCase好吧,我添加了它,但它仍然是一样的,我仍然没有从我的会话中获得任何数据,这个代码在其他控制器(不是资源控制器)中工作得很好。如果你在
构造函数中
dd($Request->session)
,它是否返回
null
,我记得这是正常的,因为会话中间件还没有在构造函数中运行。我打赌你可以在构造函数之外访问会话,对吗?是的,你说得对,哇,太棒了。现在如何修复它,我只想从我的控制器调用它
$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);
});