Phalcon PHP将参数传递给属于另一个控制器的视图

时间:2014-09-18 01:03:44

标签: php scope phalcon

这是一个真正的新手问题,但我没有使用PHP和Phalcon很长时间而且我是 通过学习例子,在互联网上阅读以及一些试验和错误来学习。

我坚持的一件事是如何将变量传递给属于另一个控制器的视图。 如果我想将变量传递给同一个控制器中的视图,我们可以将其称为showRoomController,然后我只是使用。

$this->view->setVar("id", $cars->id);

但是,如果我想从catalogueController打开汽车视图,但是从属于showRoomController的页面我使用:

return $this->forward("catalogue/cars");

如何在第二个示例中传递cars id变量?或者我需要使用全局变量吗?

如果这是一个我可能应该知道的非常基本的问题,我道歉。

2 个答案:

答案 0 :(得分:2)

Dispatcher的forward()方法也接受params:

$this->dispatcher->forward(array(
    "controller" => "myController",
    "action"     => "myAction",
    "params"     => array('name' => 'hello', 'surname' => 'world')
));

答案 1 :(得分:0)

默认情况下,您的视图是DI中的共享服务。您可以像在一个控制器中那样简单地设置参数,当它转发到另一个控制器时,所有这些参数仍然存在。

当您在控制器it uses a magic method to get the view service from the DI中执行$this->view时,如果您在两个控制器中执行此操作,则会引用相同的视图。