2010-02-23 110 views
0

如何爲layout/layout.phtml腳本提供一些數據而無需從控制器創建視圖腳本?僅使用控制器的佈局

我已經在indexAction函數中嘗試了以下操作,但它不起作用。當我不創建視圖腳本時,我得到一個錯誤。我可以創建一個空的,但我不喜歡這個解決方案。任何更好的想法?

$this->layout->content = "foo" 
$this->_helper->viewRenderer->setNoRender(true); 

在此先感謝

回答

0

其實你不呈現一些數據您提供有關數據,然後選擇要渲染的腳本。不要混淆術語。

你做了什麼存在來使用渲染停止任何腳本:

$此 - > _ helper-> viewRenderer-> setNoRender(真);

當你

$這個 - >佈局 - >內容= 「富」;

您正在設置屬性內容,然後您需要在佈局腳本中使用它。

這樣,就要在你的layout.phtml腳本(我希望你已經配置由EFAULT渲染),你再只是這樣做,我不實際使用$這 -

echo $this->content 

通知>佈局因爲當你在佈局中時,$ this等於$ this-> layout。 $ this-> view-> foo同樣適用於您的視圖中的$ this-> foo。

我希望這會有所幫助。 任何問題只是問。

+0

感謝您的回答,我很抱歉,如果我解釋我的問題錯了。我的問題是,對於每個控制器,我必須**創建視圖腳本,否則會出現錯誤。我想爲layout.phtml中的控制器「提供」一些數據。我可以創建空的視圖腳本並將其呈現給佈局,但似乎並不是最佳實踐。 – 2010-02-23 20:22:53

+0

This line:$ this - > _ helper-> viewRenderer-> setNoRender(true);禁用視圖渲染器,這應該讓佈局完成它的事情。 – berty 2010-02-23 21:10:44