4

生徒と教師の 2 つのモジュールがあります。私はまた、2つの異なるレイアウトを持っています.1つはstudentlayout.phtmlで、もう1つはteacherlayout.phtmlです

StudentモジュールのstudentlayoutとTeachermoduleのteacherlayoutを設定するにはどうすればよいですか?

サムの答えごとに.Thanks 正常に動作しています。

しかし、教師用に2つの異なるレイアウトも設定したいと思います。したがって、プロジェクトのメイン構成ファイルに次のコードを追加します。

'module_layouts' => array(

    'Teacher' => array(
      'default' => 'layout/adminlayout',
      'login'    => 'layout/loginlayout',
    ),
    'Student' => 'layout/studentlayout',
),

教師モジュールの私のmodule.config.phpファイル:

    'module_layouts' => array(

    'Teacher' => array(
      'default' => 'layout/adminlayout',
      'login'    => 'layout/loginlayout',
    ),
      'Student' => 'layout/studentlayout',
 ),

ただし、Teacher モジュールのすべてのアクションは常に adminlayout を使用します。ログイン アクションが loginlayout を使用できないのはなぜですか?その ovveride?

4

2 に答える 2

1

1 つのアクションのレイアウトのみを変更したい場合は、コントローラー アクションで layout() プラグインを使用できます。または、モジュール内の 1 つのコントローラーのみですべてのアクションに異なるレイアウトが必要な場合は、ブートストラップで行うことができます。

public function onBootstrap(\Zend\EventManager\EventInterface $e) {
    $eventManager = $e->getApplication()->getEventManager();
    $sharedEventManager = $eventManager->getSharedManager();
    $sharedEventManager->attach('Auth\Controller\AuthController', \Zend\Mvc\MvcEvent::EVENT_DISPATCH, array($this, 'onDispatch'));
}

public function onDispatch(MvcEvent $e) {
    $controller = $e->getTarget();      
    $controller->layout('layout/loginLayout');
}

そのコントローラーの各アクションの後、ルート ViewModel レイアウトを変更します。さらに進んで、このようなレイアウトが必要なコントローラーをここでさらに指定できます。

$sharedEventManager>attach(array('Auth\Controller\AuthController',
'Auth\Controller\Registration'),
\Zend\Mvc\MvcEvent::EVENT_DISPATCH, array($this, 'onDispatch'));
}
于 2013-10-26T11:58:43.930 に答える