【问题标题】:Laravel Route List (php artisan route:list) Displaying Middleware on New LinesLaravel 路由列表 (php artisan route:list) 在新行上显示中间件
【发布时间】:2020-06-07 11:31:39
【问题描述】:

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

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

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

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

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

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

明确地说,我希望看到的是这样的:

【问题讨论】:

  • 无法复制(在 Linux 上)。安装的任何软件包可能会改变它吗?您使用的是哪个外壳/终端?
  • 我使用macOS进行开发,我之前确实看到了正确的方式,只是最近才改为显示如上。这个错误在我的 macOS 机器(用于开发)和我用于生产的 Linux Ubuntu 服务器上都出现了。我不确定是否有任何软件包安装会做出这种改变,你能建议一种方法来尝试找出答案吗?
  • 我怀疑这是否能解决问题,但您可以尝试php artisan route:list --no-ansi(对我来说,输出只是未着色)。在没有任何附加包的地方安装一个新的 vanilla Laravel 7 项目,看看问题是否仍然存在。除此之外,没有任何线索,对不起。 (你使用的是什么版本的 Laravel7?)
  • 按标题的颜色,它似乎是从不同的终端/控制台输出的?

标签: php laravel laravel-7


【解决方案1】:

如果您想再次添加分号

转到您的项目文件 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");
    }

只需将implode 中的\n 更改为,

【讨论】:

    【解决方案2】:

    我得知 Laravel 几天前在他们的框架中更新了这个:

    https://github.com/laravel/framework/pull/32993

    这是由于提出了这个问题:

    https://github.com/laravel/framework/issues/33041

    【讨论】:

      【解决方案3】:

      如果你在 Laravel 8 和 Sanctum 中仍然遇到问题,这里是修复。

      我已经换上了这条线

      return collect($this->router->gatherRouteMiddleware($route))->map
      

      在这条线上

      return collect($route->gatherMiddleware())->map
      

      在 Laravel 的核心文件中。通常,不建议这样做,但我需要一个解决方案。如果需要,您也可以尝试。

      欲了解更多详情,请访问以下链接并参考我在此页面上的评论。

      https://github.com/laravel/framework/commit/7ebd21193df520d78269d7abd740537a2fae889e

      【讨论】:

        猜你喜欢
        • 2020-06-13
        • 2017-05-01
        • 2019-05-01
        • 1970-01-01
        • 2018-07-01
        • 2021-09-14
        • 2018-12-18
        • 1970-01-01
        • 2017-04-07
        相关资源
        最近更新 更多