首页 > 解决方案 > Laravel 路由列表 (php artisan route:list) 在新行上显示中间件

问题描述

我最近注意到我的 Laravel 项目在终端中渲染路由列表的方式发生了变化。它不再是逗号分隔中间件列,如果有多个中间件,它将添加到其父路由下方表格中的新空白行中。

这似乎是一个非常微不足道的问题,但是对于 laravel 来说相对较新,这是我用它制作的第一个合适的项目我首先担心 laravel 安装可能存在问题,这可能会导致其他地方的其他问题,并且我使用各种中间件添加的路由越多,显示所有路由时的表格变得相当难以互操作,这在以前不是问题。

请参阅下面的路由表屏幕截图,该屏幕截图仅显示我项目中选定数量的路由,以便让您了解我所看到的内容。

路由表

有谁知道为什么这会发生变化,如果有办法让它恢复到以前的显示方式,通过将所有中间件与所有其他数据保持在同一行中,并用逗号分隔它们。

一时兴起,我在控制台中尝试了以下方法,它们没有任何区别:

php artisan cache:clear php artisan routes:clear php artisan config:clear

需要明确的是,我希望看到的是这样的:

路由表

标签: phplaravellaravel-7

解决方案


如果要再次添加分号

转到您的项目文件 vendor\laravel\framework\src\Illuminate\Foundation\Console 然后打开文件 RouteListCommand.php

搜索功能getMiddleware

protected function getMiddleware($route)
    {
        return collect($this->router->gatherRouteMiddleware($route))->map(function ($middleware) {
            return $middleware instanceof Closure ? 'Closure' : $middleware;
        })->implode("\n");
    }

只需更改\n,implode


推荐阅读