【发布时间】: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->session)在你的constructor中返回null吗? -
你知道吗,我记得这是正常的,因为会话中间件尚未在构造函数中运行。我敢打赌你可以在构造函数之外访问会话,对吧?
-
是的,你说得对,哇!现在如何修复它,我只想从我的控制器调用它
标签: php laravel oop session laravel-5.3