这是一个真正的新手问题,但我没有使用PHP和Phalcon很长时间而且我是 通过学习例子,在互联网上阅读以及一些试验和错误来学习。
我坚持的一件事是如何将变量传递给属于另一个控制器的视图。 如果我想将变量传递给同一个控制器中的视图,我们可以将其称为showRoomController,然后我只是使用。
$this->view->setVar("id", $cars->id);
但是,如果我想从catalogueController打开汽车视图,但是从属于showRoomController的页面我使用:
return $this->forward("catalogue/cars");
如何在第二个示例中传递cars id变量?或者我需要使用全局变量吗?
如果这是一个我可能应该知道的非常基本的问题,我道歉。
答案 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
时,如果您在两个控制器中执行此操作,则会引用相同的视图。