我有点乱!我需要知道如何从视图中访问文件。 我的文件夹结构:
application
-controllers
-models
-views
-helpers
-scripts
-report
index.phtml
sample.inc
现在如果我需要从index.phtml访问此文件,例如fopen('sample.inc','w+');
失败。我必须在这里给出完整的路径吗?我在视图中遇到很多情况。此sample.inc是PHP / SWF图表使用的文件。
任何帮助都将不胜感激。
此致
加扬答案 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');
?>
希望有所帮助:)