2012-02-13 18 views
4

私はlogin.phtmlビューを持っています。これは共通のパスに入れて、アプリケーションを通してどのモジュールからでもアクセスできるようにしたいのです。別のビューからビューを呼び出す

サイドバーが$this->render('common/sidebar.phtnl')でレンダリングされている場合、私のレイアウトはすべてのモジュール用に1つで、これは機能します。

しかし、内容が$this->layout()->contentの場合、$this->login()のように結果ビューにヘルパーを追加すると、Zendはモジュールスクリプトパス上でそれを探し続けます。

私のフローがモジュールの結果であっても、自分のコンテンツビューがヘルパーをまたいで別の共通のビューをレンダリングできるようにするにはどうすればいいですか?

答えて

1

これはcustom view helperのための良い仕事のように見えます。あなた自身を書くことは非常に簡単ですし、一度試してみると止められません!

カスタムビューヘルパーは、applications/views/helpers/NameOfHelper.phpにあり、nameOfHelper()というパブリックメソッドが必要です。今回のケースでは、ログインを例として使用します。

まず、アプリケーション/ビュー/ヘルパー/ Login.phpを作成: -

class Zend_View_Helper_Login extends Zend_View_Helper_Abstract 
{ 
    public function login() 
    { 
     return "Logging in!"; 
    } 
} 

次にビューやレイアウトに単に実行します -

echo $this->login(); 

と出力を得る: -

ログインしています!

簡単にできませんでした。また

あなたは(あなたのログインでこれを行うことができ、ビュースクリプトを使用する場合)方法: -

class Zend_View_Helper_Login extends Zend_View_Helper_Abstract 
{ 
    public function login() 
    { 
     $this->view->exampleVar = 'example value'; 
     return $this->view->render('login.phtml') 
    } 
} 

あなたのビューやレイアウトにecho $this->login()を行うときに、あなたが望む出力が表示されます。

明らかに、必要なコードをlogin()メソッドに入れることができます。

+0

感謝。それは非常に理解しやすいです! – thangchung

0

することができますビュースクリプトから:あなたの説明のための

<?php echo $this->render("menus/recetas.phtml"); ?> 
関連する問題