1

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

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

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

4

2 回答 2

1

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

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

此外,您还缺少函数中的 STATIC 字。

于 2015-03-31T19:31:15.570 回答
0

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

$request = new Phalcon\Http\Request();
$request->get("myParameter");
于 2015-03-31T16:05:47.637 回答