laravel 5.5 自定义库创建中间件 $request->user returns null
laravel 5.5 custom library creation middleware $request->user returns null
您好,我在 /vendor/myCustom/src/Middleware/aMdl.php
的新库中遇到 auth()->user() 或 $request->user() 问题
public function handle($request, Closure $next, $right)
{
return var_dump($request->user()); <------ Here i get NULL
if($request->user()->hasRights($right)){
return $next($request);
}
return redirect("/");
}
这是一个简单的服务提供者
public function boot()
{
$this->loadViewsFrom(__DIR__."/views", 'aFolder');
}
/**
* Register services.
*
* @return void
*/
public function register()
{
include __DIR__."/routes.php";
$this->app->make("aCustomlib\aFolder\Controllers\aController");
}
一条简单的路线。
Route::get("/aPath", "aCustomlib\aFolder\Controllers\aController@index");
我在Kernel.php
注册了中间件
然后我只是在 aController.php __constructor
中调用 __constructor
$this->middleware('rights:aRight');
我知道名字很傻,但这只是一个例子,我只是在学习。
感谢您的回答。
PS: 所有这些文件都在 /vendor 文件夹中
即使我在 __constructor(){ $this->middleware('auth')
中使用也会发生这种情况
您需要将路由包装在 web
中间件组中(启动并填充会话相关数据),例如:
Route::group(['middleware' => 'web'], function () {
include __DIR__."/routes.php";
});
您好,我在 /vendor/myCustom/src/Middleware/aMdl.php
的新库中遇到 auth()->user() 或 $request->user() 问题public function handle($request, Closure $next, $right)
{
return var_dump($request->user()); <------ Here i get NULL
if($request->user()->hasRights($right)){
return $next($request);
}
return redirect("/");
}
这是一个简单的服务提供者
public function boot()
{
$this->loadViewsFrom(__DIR__."/views", 'aFolder');
}
/**
* Register services.
*
* @return void
*/
public function register()
{
include __DIR__."/routes.php";
$this->app->make("aCustomlib\aFolder\Controllers\aController");
}
一条简单的路线。
Route::get("/aPath", "aCustomlib\aFolder\Controllers\aController@index");
我在Kernel.php
注册了中间件然后我只是在 aController.php __constructor
中调用 __constructor$this->middleware('rights:aRight');
我知道名字很傻,但这只是一个例子,我只是在学习。
感谢您的回答。
PS: 所有这些文件都在 /vendor 文件夹中
即使我在 __constructor(){ $this->middleware('auth')
中使用也会发生这种情况您需要将路由包装在 web
中间件组中(启动并填充会话相关数据),例如:
Route::group(['middleware' => 'web'], function () {
include __DIR__."/routes.php";
});