Phalconphp:在控制器外部获取路由器参数

Phalconphp:在控制器外部获取路由器参数,php,phalcon,phalcon-routing,Php,Phalcon,Phalcon Routing,我有一个这样定义的路由器 $router->add(“/api/:controller/:action/:params”,数组( “控制器”=>1, “操作”=>2, “参数”=>3, “myParameter”=>“测试” )); 所以,我可以像这样在控制器内部得到“myParameter”参数 $this->dispatcher->getParam(“myParameter”); 但是,我想在我从控制器调用的另一个类中使用这个参数。差不多 myCustomClass::test();

我有一个这样定义的路由器

$router->add(“/api/:controller/:action/:params”,数组(
“控制器”=>1,
“操作”=>2,
“参数”=>3,
“myParameter”=>“测试”
));
所以,我可以像这样在控制器内部得到“myParameter”参数

$this->dispatcher->getParam(“myParameter”);
但是,我想在我从控制器调用的另一个类中使用这个参数。差不多

myCustomClass::test();


class myCustomClass {
    function test() {
        // this is where I need that parameter
    }
}

如果我从
myCustomClass
调用Dispatcher,它将不返回任何内容

(当然,在控制器内部获取值并将其作为值传递是一个解决方案,但我可能会将其至少用于100个不同的操作,因此在这种情况下,这不是一个好的解决方案)


有没有办法获取控制器范围之外的额外参数。

我不是100%确定,但我认为您可以从phalcon Http请求类访问get参数

$request = new Phalcon\Http\Request();
$request->get("myParameter");

您需要默认依赖项注入,可能在index.php中声明

class myCustomClass {
    static function test() {
        $request = \Phalcon\DI::getDefault()->get( 'request' );
        $request->get("myParameter");
    }
}

另外,函数中缺少静态字。

尝试了该操作后,它返回实际的请求参数(get和post)。对于这个url,'/api/user/profile/1?x=y&a=b'$request->get()是数组([\u url]=>/api/user/profile/1[x]=>y[a]=>b)(对不起,我的代码中已经有了静态代码,忘了把它粘贴在这里),但这个仍然没有给我任何结果。shivanshupatel的回答也有同样的行为。似乎是正确的,但我有一种奇怪的感觉:它不应该来自
调度程序
而不是
请求
?@yergo调度程序控制应用程序流,控制器排序。请求访问URL、GET、POST和其他信息。