Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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 软件包开发-验证检查不';行不通_Php_Laravel_Authentication_Package_Laravel 5.3 - Fatal编程技术网

Php 软件包开发-验证检查不';行不通

Php 软件包开发-验证检查不';行不通,php,laravel,authentication,package,laravel-5.3,Php,Laravel,Authentication,Package,Laravel 5.3,为了开发一个软件包,我制作了一个简单的全新的Laravel 5.3应用程序。我遵循了Janis的指示,并在用户Janis的评论中进行了一些修改。一切都很完美 然后我决定用 @if(Auth::check()) ID: {{Auth::id()}}. @else not logged in @endif 应用程序的当前状态已上载到Github 问题 检查的视图不起作用。我总是让未登录。 如何使Auth::check()工作? 在浏览器的另一个选项卡中,我正确地记录了日志 暗示 我

为了开发一个软件包,我制作了一个简单的全新的Laravel 5.3应用程序。我遵循了Janis的指示,并在用户Janis的评论中进行了一些修改。一切都很完美

然后我决定用

@if(Auth::check())
    ID: {{Auth::id()}}.
@else
    not logged in
@endif
应用程序的当前状态已上载到Github

问题 检查的视图不起作用。我总是让
未登录
。 如何使
Auth::check()
工作? 在浏览器的另一个选项卡中,我正确地记录了日志

暗示 我不知道该怎么做


请告诉我如何使
Auth::check()
在视图中工作。

请尝试此artisan命令

php artisan cache:clear

试试这个工匠的命令

php artisan cache:clear

自从Laravel 5以来,routes.php中的任何路由都会自动使用web中间件,但这不会发生在您的包路由中

要在包控制器和视图中使用Laravel的身份验证,您需要在包route.php中强制使用web中间件,如下所示:

Route::group(['middleware' => 'web'], function () {
  // your package routes here
});

自从Laravel 5以来,routes.php中的任何路由都会自动使用web中间件,但这不会发生在您的包路由中

要在包控制器和视图中使用Laravel的身份验证,您需要在包route.php中强制使用web中间件,如下所示:

Route::group(['middleware' => 'web'], function () {
  // your package routes here
});

这是我的服务提供商中包路由的结构

你唯一要做的就是,为你的路线添加“web”中间件

$routeConfig = [
        'namespace' => config('banasher.controllers.namespace')."\Panel",
        'prefix'    => 'panel',
        'as'        => 'panel.',
        //TODO: add middleware
        'middleware' => ['web','auth']
    ];
    $this->getRouter()->group($routeConfig, function() {
        require __DIR__.'\routes\banasher.php';
    });

这是我的服务提供商中包路由的结构

你唯一要做的就是,为你的路线添加“web”中间件

$routeConfig = [
        'namespace' => config('banasher.controllers.namespace')."\Panel",
        'prefix'    => 'panel',
        'as'        => 'panel.',
        //TODO: add middleware
        'middleware' => ['web','auth']
    ];
    $this->getRouter()->group($routeConfig, function() {
        require __DIR__.'\routes\banasher.php';
    });

我在发帖之前试过了。我希望我能这么简单。:)我在发帖之前试过了。我希望我能这么简单。:)如果在加载该视图的包控制器中使用dd(Auth::check()),会发生什么?我只是在空白页上看到
false
,你是说它在浏览器的另一个选项卡中工作正常-这怎么可能?你说的“在这一边”是什么意思?你试过检查你是否真的登录了吗?成功登录后,尝试转储
Auth::user()
。对我来说,这似乎也不可能。尝试在本地计算机上启动应用程序,以便自己查看。我已经编辑掉了这边的
。这意味着从原始应用程序的角度来看,一切似乎都正常工作。如果在加载该视图的包控制器中创建dd(Auth::check()),会发生什么?我只是在空白页上看到
false
,你是说它在浏览器的另一个选项卡中正常工作-这怎么可能?你说的“在这一边”是什么意思?你试过检查你是否真的登录了吗?成功登录后,尝试转储
Auth::user()
。对我来说,这似乎也不可能。尝试在本地计算机上启动应用程序,以便自己查看。我已经编辑掉了这边的
。这意味着从原始应用程序的角度来看,一切似乎都很好。