In my project I have a number of dynamic elements that are consistently on every page. I have put these in my layout.phtml
My question is: How can I send variables into my layout from my controllers?
If I want to send things from my controller I can use:
$this->view->whatever = "foo";
And receive it in the view with
echo $this->whatever;
I cannot figure out how to do the same with my layout. Perhaps there is a better way around the problem?
Well i guess you can have another solution by creating view helper.. create a file in application/views/helper and name it what ever you want
abc.php
then put the following code over there.So you can use this helper in layout like..
The layout is a view, so the method for assigning variables is the same. In your example, if you were to echo $this->whatever in your layout, you should see the same output.
One common problem is how to assign variables that you use on every page to your layout, as you wouldn't want to have to duplicate the code in every controller action. One solution to this is to create a plugin that assigns this data before the layout is rendered. E.g.:
then register this plugin with the front controller, e.g.
Zend_Controller_Front::getInstance()->registerPlugin(new My_Layout_Plugin());