Update 8th April 2009: Apparently as of 1.7.6 $this->view->[helperName()] now works with no extra work required so the info in this post is only necessary if you’re using <= 1.7.5. Thanks to Mike van Lammeren for the heads up, Â see Mike’s comment below.
If you’re relatively new to Zend Framework, some of the little details can stump you. To call a view helper from within another view helper, you need to give the helper some, er, help. Helpers will try to call a function called setView to set up $_view, so just add it:
Add these lines to the view helper:
private $_view;
public function setView($view) {
$this->_view = $view;
}
then to call the View Helper you need, use $this->_view->anyHelperYouLike();
Edit: I found this information somewhere on the web, but can’t remember the source. Any information appreciated!















3 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
Hi Joe!
Thanks to your post, I found the answer to this problem. However, I suspect that your information is a little out of date.
In v1.7.6 of the Zend Framework, the current stable version, the Zend_View_Helper_Abstract class has a public $view variable and public setView() class, so as long as your view helpers have extended Zend_View_Helper_Abstract, then you can access other helpers like this:
$this->view->anyHelperYouLike();
Thanks Mike, I hadn’t noticed that this had been added. I’ll give it a go next time. I’ll leave this post up in case anyone is using an old version of the Zend Framework…
The post and the comment both were a help.
I was getting NULL with var_dump($this->view) since I hadn’t extended Zend_View_Helper_Abstract.
Cheers