是否有办法为控制器级别的部分设置变量?
因为每次我需要局部变量时我总是需要传递它们:
<?php
echo $this->partial('travels/_steps.phtml',
array('searchHotel' => $this->searchHotel,
'actionName' => $this->actionName))
?>
我真的希望actionName
在所有偏导数上都可用-例如。
您可以将Zend_View_Helper_Partial类扩展为将该变量保持在作用域中的类。您需要重写cloneView()函数:
public function cloneView()
{
$view = parent::cloneView();
$view->actionName = $this->view->actionName
return $view;
}
您可以使用$this->render()
代替。有了它,你就不需要每次都传递视图变量了。
希望有帮助,
您也可以将当前视图作为参数发送给局部:
<?php
echo $this->partial('travels/_steps.phtml', array('parentView' => $this));
然后,在部分中:
<?php
$view = $this->parentView;
echo $view->searchHotel, $view->actionName;
在我看来,您正在做的正是您应该做的事情-传递您在部分中需要的那些变量。
如果这让你感到痛苦,也许你可以认为你不必要地使用了偏音。
或者,换句话说,如果你想让一些变量在所有的偏导数中可用,那么也许你不应该在偏导数中使用这些变量。
也许可以看看占位符,重新考虑如何呈现您的视图