Phalconphp:在Controller之外获取路由器参数

时间:2015-03-31 15:52:46

标签: php phalcon phalcon-routing

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

$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个不同的操作,因此在这种情况下它不是一个很好的解决方案。)

有没有办法让额外的参数超出控制器的范围。

2 个答案:

答案 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");