scope — Phalcon PHP передает параметры в представления, принадлежащие другому контроллеру

Это реальный вопрос новичка, но я не очень долго использовал PHP и Phalcon, и я
своего рода обучение, изучая примеры, читая в Интернете и немного проб и ошибок.

Одна вещь, на которой я застрял, — это как передать переменные в представления, принадлежащие другому контроллеру.
Если я хочу передать переменную представлению в том же контроллере, назовем его showRoomController, то я просто использую.

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

Однако, если я хочу открыть вид автомобилей из каталога контроллера, а со страницы, принадлежащей showRoomController, я использую это:

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

Как я могу передать переменную id машины во втором примере? Или мне нужно использовать глобальные переменные?

Я прошу прощения, если это очень простой вопрос, который я, вероятно, должен знать.

1

Решение

По умолчанию ваш вид является общей службой в DI. Вы можете просто установить параметры, как вы делаете в одном контроллере, и когда он перешел к другому, все эти параметры все еще будут там.

Когда вы делаете $this->view в вашем контроллере он использует магический метод, чтобы получить сервис просмотра из DI, так что если вы сделаете это на обоих контроллерах, вы будете ссылаться на одно и то же представление.

0

Другие решения

Диспетчерская forward() Метод также принимает параметры:

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

По вопросам рекламы [email protected]