我正在为Laravel编写命令以搜索特定的路线模式。
我创建了带有参数{route}的命令,该命令执行bash命令并回显结果。
protected $signature = 'routes:find {route}';
public function handle()
{
echo exec('php artisan route:list | grep '.$this->argument('route'));
}
问题是此命令在一行中输出路由,并且不像默认route:list
命令那样提供任何格式。
答案 0 :(得分:0)
如果您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
对象为您提供路由。