【问题标题】:Phalcon PHP passing parameters to views that belongs to another controllerPhalcon PHP 将参数传递给属于另一个控制器的视图
【发布时间】:2014-09-18 01:03:43
【问题描述】:

这是一个真正的新手问题,但我使用 PHP 和 Phalcon 的时间不长,我是 通过研究示例、在互联网上阅读和一些尝试和错误来学习。

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

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

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

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

如何在第二个示例中传递汽车 id 变量?还是我需要使用全局变量?

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

【问题讨论】:

  • 我找到了一种方法,但不确定这是否是最佳实践。基本上我使用的是 Dispatcher 的 setParam 和 getParam 方法。

标签: php scope phalcon


【解决方案1】:

Dispatcher 的 forward() 方法也接受参数:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多