Zend Framework:如何删除控制器中的渲染视图?

时间:2010-03-13 17:56:35

标签: zend-framework view render

我想渲染其中一组视图:

  1. 体佩$ ID1
  2. OR

    1. 体佩$ ID2
    2. 设置了exsists。

      我是这样做的:

      try {
          $this->render("head");
          $this->render("body-$id1");
          $this->render("foot");
      } catch (Exception $e) {
          $this->render("head");
          $this->render("body-$id2");
          $this->render("foot");  
      }
      

      但如果body- $ id1不存在,则会导致head视图呈现两次。

      你有更好的解决方案吗?

      在另一个说法中,我可以在呈现之前检查body-$id1的存在吗?

1 个答案:

答案 0 :(得分:1)

好吧,它会在“try”块中运行任何有效的脚本,但如果失败,它将呈现“catch”块中的所有内容。所以你可能想要更像的东西:

$this->render("head");
try {
    $this->render("body-$id1");
} catch (Exception $e) {
    $this->render("body-$id2");
}
$this->render("foot");

我没有看到用于检查视图是否存在的API方法,但是您可以编写一个控制器助手,它只获取视图脚本的路径并使用file_exists检查“body - {$ id1 “存在于那条道路上。