You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 10如何按控制器名称过滤route:list路由列表?

在Laravel 10中按控制器名称过滤路由列表

方法1:借助系统命令行工具过滤输出

Laravel的route:list命令没有内置按控制器名称过滤的参数,但可以通过系统文本过滤工具处理输出结果:

  • Linux/macOS环境:使用grep匹配控制器名称
    php artisan route:list | grep "YourControllerName"
    
    若需要忽略大小写匹配,添加-i参数:
    php artisan route:list | grep -i "YourControllerName"
    
  • Windows环境:使用findstr替代grep
    php artisan route:list | findstr "YourControllerName"
    

方法2:结合JSON输出与jq工具精准过滤

如果要避免误匹配URI中包含相同字符串的路由,可通过JSON格式输出路由,再用jq工具精准筛选控制器字段:

  1. 确保已安装jq工具(Linux/macOS可通过系统包管理器安装,Windows可自行获取适配版本)
  2. 执行以下命令(替换YourControllerName为目标控制器名称):
    php artisan route:list --json | jq '.[] | select(.controller | contains("YourControllerName"))'
    
    该命令仅返回包含指定控制器的路由条目,结果精准且格式清晰。

方法3:通过Laravel Tinker查询路由

若需要自定义输出格式或添加复杂过滤条件(比如匹配特定命名空间),可在Tinker中直接操作路由实例:

  1. 启动Tinker:
    php artisan tinker
    
  2. 执行过滤代码(替换YourControllerName为目标控制器名):
    Route::getRoutes()->filter(function ($route) {
        return str_contains($route->getAction()['controller'] ?? '', 'YourControllerName');
    })->each(function ($route) {
        echo sprintf("%s %s -> %s\n", $route->methods()[0], $route->uri(), $route->getAction()['controller'] ?? '无控制器');
    });
    

内容的提问来源于stack exchange,提问作者Robin Bastiaan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:22:23