获取当前路由规则

Get current route rule

我正在尝试在我的过滤器中获取当前路由规则。

$routes->group('creditCalculator', ['namespace' => '\Modules\CreditCalculator', "filter" => 'auth:recht1', 'extra_credentials' => array('as'=>'test', 'menu'=>'profile')], function($routes){
$routes->post('/', 'CreditCalculator_Controller::index');
$routes->get('test', 'CreditCalculator_Controller::test', ["filter"=>"auth:test1", 'test2' => 'test3']);
$routes->get('test2/(:num)/(:any)', 'CreditCalculator_Controller::test2//', ["as"=>'named_route', "filter"=>"auth:recht3", 'right' => 'right1']);

在“auth”过滤器中,我想访问当前匹配的路由以获取 routeOptions。

目标: 我们想为每条路线设置一些规则。之后我们想在我们的过滤器中检查这些设置。示例:登录类型。所以我们可以查看每条路由,当前这条路由需要哪种登录类型。

我们正在使用 Codeigniter 4 HMVC。

有什么建议吗? CI4 的文档和 api-文档并没有让我走得太远。我尝试了路由器的几种方法,但没有一种方法给我当前匹配的路由。

我需要的 return:/test/(:num)/(:any) 和该路由的选项数组

到目前为止 - 我们的过滤器:

<?php 

namespace App\Filters;

use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use CodeIgniter\Filters\FilterInterface;

class filterTest implements FilterInterface {
public function before(RequestInterface $request, $arguments = null) {
    $list    = \Config\Services::routes();

    $routes  = $list->getRoutesOptions();
}

public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) {

}
}

我刚刚包含了错误的服务。通过服务路由器,我可以访问 'getMatchedRouteOptions' 方法。

$router       = \Config\Services::router();
$routeOptions = $router->getMatchedRouteOptions();