1

zf2モジュールでエラー/例外ページを表示しているときにレイアウトを無効にしようとしています

しかし、何も機能しません

助けてください

4

4 に答える 4

7

Module.phpの最終的な解決策

$eventManager = $e->getApplication()->getEventManager();



        $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function($e) {
             $result = $e->getResult();
             $result->setTerminal(TRUE);

            });

それは動作し、レイアウトファイルではなくエラー/404ビューファイルのみをロードします

ありがとうアンドリュー

于 2013-02-07T20:46:48.643 に答える
3

Zend Framework 2 MVCモジュールを見ると、これが可能であることがわかります。

DispatchListener.php

    try {
        $return = $controller->dispatch($request, $response);
    } catch (\Exception $ex) {
        $e->setError($application::ERROR_EXCEPTION)
              ->setController($controllerName)
              ->setControllerClass(get_class($controller))
              ->setParam('exception', $ex);
        // look here...
        $results = $events->trigger(MvcEvent::EVENT_DISPATCH_ERROR, $e);
        $return = $results->last();
        if (! $return) {
            $return = $e->getResult();
        }
    }

コントローラ内で例外がスローされたときにトリガーされるMvcEventを確認できます。このイベントには、他にもいくつかのプロセスがあります。

このイベントにメソッドをアタッチして、好きなことをすることができます。

例として、ExceptionStrategy.phpを見てください

public function prepareExceptionViewModel(MvcEvent $e)
{
     ....
}
于 2013-02-06T13:39:47.107 に答える
0

これはあなたの答えではありませんが、zf2の他の人に役立ちます

 public function indexAction()
    {    
        echo "json"
        return $this->getResponse();
    }
于 2015-05-06T12:18:47.940 に答える
0

最も簡単な方法は、configを使用することですconfig/autoload/local.php

return array(
    'view_manager' => array(
        'display_exceptions' => false
    )
);

この行を追加すると、例外が無効になります。さらに、開発サーバーで独自のlocal.phpサーバーを使用できます。

于 2015-12-19T23:36:22.647 に答える