Zend Framework:如何从HeadLink助手中取消设置一个样式表

时间:2011-06-21 10:26:44

标签: php zend-framework stylesheet viewhelper

我在Controller init()中有一个常见样式列表:

$this->view->headLink()->setStylesheet('/style/style.css');
$this->view->headLink()->appendStylesheet('/style/style2.css');
$this->view->headLink()->appendStylesheet('/style/style3.css');
$this->view->headLink()->appendStylesheet('/style/forms.css');
$this->view->headLink()->appendStylesheet('/style/ie_patches.css','all','lte IE 7');

我需要的是稍后在该控制器的一个动作中从堆栈中删除其中一个样式表的方法。

感谢您的帮助, 请原谅我的英文

3 个答案:

答案 0 :(得分:7)

或者你可以使用

$this->view->headLink()->offsetUnset($offsetToBeRemoved); // offsetToBeRemoved should be integer

要查找offsetToBeRemoved,您可以获取迭代器($this->view->headLink()->getIterator())或容器$this->view->headLink()->getContainer()),循环访问它并获取您感兴趣的密钥。

答案 1 :(得分:4)

例如,如果你想删除'/style/style2.css',你可以按照以下步骤进行操作:

    $headLinkContainer = $this->view->headLink()->getContainer();
    unset($headLinkContainer[1]);

这是有效的,因为容器(即Zend_View_Helper_Placeholder_Container的实例)扩展ArrayObject。这意味着您可以像使用数组一样操纵headLink元素。

希望这有帮助。

答案 2 :(得分:3)

你也可以像这样设置空容器:

$this->view->headLink()->setContainer(
    new Zend_View_Helper_Placeholder_Container()
);