Это реальный вопрос новичка, но я не очень долго использовал PHP и Phalcon, и я
своего рода обучение, изучая примеры, читая в Интернете и немного проб и ошибок.
Одна вещь, на которой я застрял, — это как передать переменные в представления, принадлежащие другому контроллеру.
Если я хочу передать переменную представлению в том же контроллере, назовем его showRoomController, то я просто использую.
$this->view->setVar("id", $cars->id);
Однако, если я хочу открыть вид автомобилей из каталога контроллера, а со страницы, принадлежащей showRoomController, я использую это:
return $this->forward("catalogue/cars");
Как я могу передать переменную id машины во втором примере? Или мне нужно использовать глобальные переменные?
Я прошу прощения, если это очень простой вопрос, который я, вероятно, должен знать.
По умолчанию ваш вид является общей службой в DI. Вы можете просто установить параметры, как вы делаете в одном контроллере, и когда он перешел к другому, все эти параметры все еще будут там.
Когда вы делаете $this->view
в вашем контроллере он использует магический метод, чтобы получить сервис просмотра из DI, так что если вы сделаете это на обоих контроллерах, вы будете ссылаться на одно и то же представление.
Диспетчерская forward()
Метод также принимает параметры:
$this->dispatcher->forward(array(
"controller" => "myController",
"action" => "myAction",
"params" => array('name' => 'hello', 'surname' => 'world')
));