2013-03-29 70 views
1

我使用Zend的部分助手:這個錯誤有什麼問題?

<?php echo $this->partial(include_once('../application/views/layouts/header.phtml'), array('from' => '<div id="logo_page"><img src="../css/images/master1.png"></div>')); ?> 

在header.phtml:

<?php echo $this->escape($this->from) ?> 

當我嘗試使用它,我有錯誤:

exception 'Zend_View_Exception' with message 'script '1' not found in path (Y:/home/local.mekheda/application/modules/blog/views\scripts/;Y:\home\local.mekheda\application/views\scripts/)' in Y:\home\local.mekheda\library\Zend\View\Abstract.php:980

爲什麼它是1,什麼是錯的?

回答

3

你不需要include_once指令。只使用路徑局部視圖:

$this->partial('../application/views/layouts/header.phtml', array('from' => '<div id="logo_page"><img src="../css/images/master1.png"></div>')); 

include_once返回1上的成功,因此,錯誤消息。

更新:
不知道我完全理解這個問題,從您的意見,但爲什麼不把所有的HTML中的部分觀點:

// header.phtml 
<div id="logo_page"><img src="<?php echo $this->img; ?>" /></div> 

它如下傳遞給局部視圖:

$this->partial('../application/views/layouts/header.phtml', array('img' => 'css/images/master.pg')); 

注:如果文件css/images/master.png是你public目錄下你可以把它像我一樣,不使用../

+0

請求腳本可能不包括父目錄遍歷(」 ../ 「,」..「符號) 我嘗試了不同的方式,我有這個錯誤 – Stopper

+1

是的,正確的。您應該將部分視圖放置在您的視圖所在的相同文件夾中。 [RTFM](http://framework.zend.com/manual/1.12/en/zend.view.helpers.html#zend.view.helpers.initial.partial)查看它是如何完成的。 ;-) – Havelock

+0

如果我在不同的意見中需要它,該怎麼辦?我需要重複header.html嗎? – Stopper

1

使用部分錯誤的 - 扔include_once聲明

echo $this->partial(
    '../application/views/layouts/header.phtml', 
    array('from' => '<div id="logo_page"><img src="../css/images/master1.png"></div>')); 
1

地方「header.phtml」在YourApplicationFolder /模塊/應用/視圖/諧音

< ?php echo $this->partial('partials/header.phtml', 
          array('from' => '<div id="logo_page"><img src="../css/images/master1.png"></div>')); ?> 
+0

with message'script'/partials/header.phtml'找不到路徑 – Stopper

+1

在YourApplicationFolder/modules/Application/view/partials中放置「header.phtml」 – Arvind

+0

也許你在我的數組中知道這個字符串:'

'和html響應它像文本,但不是HTML拖船,我能做什麼? – Stopper