2012-04-26 14 views
2

私は簡単な質問があります...どのようにProject/application/layouts/scripts/default.phtmlにあるdefault.phtmlの内容を変数、私はそのhtmlを持つことができます。インデックス・コントローラでコントローラ内の変数にdefault.phtmlをキャプチャする方法

、アクションとテストという名前PHTMLファイルで、これは動作します:

$html = $this->view->render('index/test.phtml'); 

しかし、もちろん、これはそうではない:

$htmlDefaultLayout = $this->view->render('default.phtml'); 

default.phtmlので、どんなコントローラの中にもありません。

これを行うには良い方法はありますか?

+0

質問を理解していない必要があります。あなたはテンプレートの内容を取得しようとしていますか?または、テンプレートにグローバルにアクセスしたいですか? –

+0

こんにちは、マイク..答えてくれてありがとう...私は生成されたhtmlが必要です。つまり、default.phtmlの内容です – Jack

+0

テンプレートの生成された内容が必要なので、レンダリングを(ブラウザで見た場合のように)変数に格納しますか? –

答えて

2

あなたはその後、default.phtmlファイルをレンダリングすることができるようにZend_Viewは、ビューの中に見えることをパスに追加することができます。

例:Zend_Viewの中では、scriptPathに添加

// add the layout directory to the path 
$this->view->addScriptPath(APPLICATION_PATH . '/layouts/scripts/'); 

$htmlDefaultLayout = $this->view->render('default.phtml'); 

最後のパスは(LIFO)チェックする最初のものです。

View Script Pathsを参照してください。

+0

ありがとう、drew010。出来た! – Jack

3

あなたはレンダリングを停止し、このような出力をつかむことができます。

$this->_helper->layout()->disableLayout(); 
$this->_helper->viewRenderer->setNoRender(true); 
$this->view->addScriptPath(APPLICATION_PATH . '/layouts/scripts/'); //default layout path 
$htmlDefaultLayout = $this->view->render('default.phtml'); 
+0

Starxに感謝します。これは実際に私の最初の試みでしたが、問題はdefault.phtmlへのパスがないことです。 – Jack

+0

その解決策は、私のためにうまくいった、ありがとう@Starx! –

関連する問題