2

Zend Framework アプリケーションでユーザーに関する情報を表示しようとしています。すべてのコントローラー (ログイン コントローラーを除く) に対して 1 つのレイアウト スクリプトを使用しています。そして今、ログインしたユーザーに関する情報を表示したいと思います (このレイアウトは、ログインしたユーザーを持つコントローラーでのみ使用されます)。

ユーザー情報を取得するロジックを、情報をレンダリングするオブジェクトとビュー スクリプトに分離したいと考えています。将来的には、これらのパーツの 1 つを個別に変更できるようにします。

それで問題は、これを達成するための最良の方法は何ですか?

4

1 に答える 1

2

私はこの目的のためにアクションヘルパーを使用しています。ユーザー情報を取得して、ビューに追加できます。そんな感じ:

class My_LayoutHelper extends Zend_Controller_Action_Helper_Abstract {
    /**
     * Predispatch hook.
     */
    public function preDispatch()
    {
        $view = $this->getActionController()->view;

        // Get the user data from wherever you have them
        $userInfo = getUserInfo();

        // Inject it into the view
        $view->username = $userInfo->name;
    }
}

そして、レイアウトスクリプトでは、次のように書くことができます

<?php echo $this->username; ?>

必要な場所ならどこでも。

アクションヘルパーの詳細については、http://devzone.zend.com/article/3350をご覧ください

お役に立てば幸いです...

于 2011-09-05T09:03:31.383 に答える