包括zend视图中的文件

时间:2011-07-19 04:38:07

标签: php zend-framework charts

我有点乱!我需要知道如何从视图中访问文件。 我的文件夹结构:

application
 -controllers
 -models
 -views
  -helpers
  -scripts
   -report
     index.phtml
     sample.inc

现在如果我需要从index.phtml访问此文件,例如fopen('sample.inc','w+');失败。我必须在这里给出完整的路径吗?我在视图中遇到很多情况。此sample.inc是PHP / SWF图表使用的文件。

任何帮助都将不胜感激。

此致

加扬

2 个答案:

答案 0 :(得分:1)

如果要读取这样的文件,则应指定它所在的目录。

您可以在index.phtml文件中使用这两个解决方案之一,使用其完整路径访问sample.inc文件:

  • dirname(__FILE__) . '/sample.inc'
  • __DIR__ . '/sample.inc' - PHP> = 5.3

dirname(__FILE__)__DIR__都指向包含使用它们的文件的目录。


只需使用sample.inc,PHP就会在代码执行时在当前目录中搜索 - 这不是report

答案 1 :(得分:0)

你要做的事情被称为“视图部分”,请参阅 http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.partial。此外,我建议将sample.inc重命名为sample.partial.phtml,以遵循Zend Framework命名对话。

但是,在使用视图partials时,您需要指定要传递给partial的参数,并且可以将路径指定为相对于视图脚本路径的路径,所以我想这应该有效:

<?php
echo $this->partial('report/sample.partial.phtml', array(
    'var1' => $this->var1,
    'var2' => $this->var2)); 
?>

另一种方法是使用render()方法 - 这样您只需在当前视图的范围内呈现指定的视图脚本,因此您可以获得当前视图对象的所有变量:

<?php
echo $this->render('report/sample.partial.phtml'); 
?>

希望有所帮助:)