2

ZendFramework2に問題があります。

PCとスマートフォンに適切なビューを表示するために、アクションごとに2つのビュースクリプトが必要です。レイアウトを変更する方法を知っています:

$viewModel->setTemplate(layout_path)

しかし、ビュースクリプトを変更する方法を見つけることができませんでした。

インデックスビューフォルダに次のファイルがありApplication/view/application/indexますIndexController

index.php  (view file for PC)

index_sp.php  (view file for smartphone)

index_sp.phpコントローラーまたはコントローラープラグインでビュースクリプトをに変更するにはどうすればよいですか?

4

2 に答える 2

11

実際のレイアウトビューファイルを変更する場合は、コントローラー内でこれを行うことができます。

// example to change base layout for ajax requests
if($this->getRequest()->isXmlHttpRequest()) {
    $this->layout('layout/ajax-layout');
}

現在のビューモデル/アクションで使用されているビューを変更する場合は、コントローラー/アクション内でこれを行うことができます。

$viewModel = new ViewModel(array(
    'form'      => $form
    'something' => $something
));
$viewModel->setTemplate('mymodule/newview.phtml');

return $viewModel;
于 2013-01-23T11:43:50.767 に答える
1
public function doSomethingCrazyAction()    {
    $view = new ViewModel(array(
        'message' => 'Hello world',
    ));

    // This is the way to change render(view)..
    $view->setTemplate('modulename/controllername/phtml-file-name');

    return $view;
}

ドキュメント:http ://framework.zend.com/manual/current/en/modules/zend.view.quick-start.html

于 2015-02-05T10:10:25.897 に答える