2011-11-11 12 views
1

データベースに格納されているユーザー値に基づいてレイアウトを切り替える必要があります。私はこれをプラグイン(PreDispatchフックを試してみました)を使って設定したいと思います。しかし、まだモデルにはアクセスできないようです。どの時点でdb値にアクセスしてレイアウトを設定できますか?私は、コントローラごとに設定するのではなく、これをグローバルに行う方が好きです。アイデアが評価されました。そのような目的のためにZend Frameworkのデータベース値に基づいてレイアウトを設定する方法

+1

をpreDispatchが正常に動作する必要があります。どのようにモデルにアクセスしようとしましたか、どのようなエラーが発生しましたか? –

+0

私の主な問題はルーティングであることがわかります。モデルは私のpreDispatchで動作します。ルーティングの質問を個別に投稿します。ありがとう! – jgnasser

答えて

1

より良いコントローラプラグイン

class Core_Controller_Plugin_LayoutManager extends Zend_Controller_Plugin_Abstract 
{ 
    public function routeStartup (Zend_Controller_Request_Abstract $request) 
    { 
     // Get your layout name here 

     $this->_layout = Zend_Layout::getMvcInstance() 
      ->setLayoutPath(YOUR_PATH_HERE) 
      ->setLayout(YOUR_LAYOT_NAME_HERE); 
    } 
} 

を使用するためには、設定中で追加することを忘れないでください:

resources.frontController.plugins.templatemanager = Core_Controller_Plugin_LayoutManager 
+0

ありがとうPavel。上記のように、主な問題はルーティングです。一度私はあなたが示唆したように、コントローラのプラグインを使用して試してみることが良いと思う。 – jgnasser

関連する問題