我有一个像这样定义的路由器
$router->add("/api/:controller/:action/:params", array(
'controller' => 1,
'action' => 2,
'params' => 3,
'myParameter' => 'test'
));
所以,我可以得到那个" myParameter"像这样的控制器里面的参数
$this->dispatcher->getParam("myParameter");
但是,我想在我从Controller调用的另一个类中使用此参数。像
这样的东西
myCustomClass::test();
class myCustomClass {
function test() {
// this is where I need that parameter
}
}
如果我从myCustomClass
调用它,则调度程序不返回任何内容。
(当然,获取控制器内部的值并将其作为值传递是一种解决方案,但我可能至少会使用它来执行100个不同的操作,因此在这种情况下它不是一个很好的解决方案。)
有没有办法让额外的参数超出控制器的范围。
答案 0 :(得分:1)
您需要默认依赖注入,可能在index.php中声明。
class myCustomClass {
static function test() {
$request = \Phalcon\DI::getDefault()->get( 'request' );
$request->get("myParameter");
}
}
你还缺少函数中的STATIC字。
答案 1 :(得分:0)
我不是100%肯定,但我认为你从phalcon Http请求类访问get参数。
$request = new Phalcon\Http\Request();
$request->get("myParameter");