如何编写工匠命令以在 Laravel 中搜索特定路线名称

Posted

技术标签:

【中文标题】如何编写工匠命令以在 Laravel 中搜索特定路线名称【英文标题】:How to write artisan command to search for specific routes name in Laravel 【发布时间】:2019-10-17 15:54:29 【问题描述】:

我正在为 Laravel 编写命令以搜索特定的路由模式。

我创建了带有参数 route 的命令,它执行 bash 命令并回显结果。

protected $signature = 'routes:find route';

  public function handle()
    
        echo  exec('php artisan route:list | grep '.$this->argument('route'));
    

问题是该命令在一行中输出路由,并且不提供任何格式,如默认的route:list 命令。

【问题讨论】:

【参考方案1】:

如果您exec 该命令,它将无法在 Windows 中运行。此外,也不能保证grep 命令也存在。

你为什么不按照原来的route:list 命令实现?

如果您检查RouteListCommand.php 文件(在您的vendor 目录中搜索它),您会找到一种更好的方法来搜索路线,从这里开始

public function __construct(Router $router)

    parent::__construct();

    $this->router = $router;
    $this->routes = $router->getRoutes();

正确的做法是委托Illuminate\Routing\Router对象为你提供路由。

【讨论】:

以上是关于如何编写工匠命令以在 Laravel 中搜索特定路线名称的主要内容,如果未能解决你的问题,请参考以下文章

在字符串数组中搜索特定字符串。 [关闭]

在java中搜索特定记录的数组列表

如何在当前文件夹和所有子文件夹中的所有文件中搜索特定文件内容[重复]

用于在终端输出中搜索特定单词的Bash脚本

如何在子目录中搜索特定文件?

如何在jtree中搜索特定节点并使该节点展开。?