0

さまざまなモジュールがあり、それらすべてがアクションでViewModelを返します。しかし、どういうわけか、ViewModelはモジュールの1つで少し奇妙に動作します。

私は言っています;

$view = new ViewModel(array('data' => $someContent));
$view->setTemplate('a valid path to template');

return $view;

空のページを取得します。

関連するテンプレートの最後にexit()ステートメントを置くと

<!DOCTYPE html>
<html>
    ...
</html>
<?php exit(); ?>

スクリプトはそこで終了するため、期待どおりの出力を取得できますが、それ以外の場合は出力が失われます。

* var_dump($ view)*と言うと、$viewがZend\ View \ Model\ViewModelのインスタンスであることがわかります。

エラーはなく、出力が空で、通知の警告も表示されます。したがって、例外、エラー、警告、通知などはスローされません。

繰り返しになりますが、これは特定のモジュールで発生しますが、そのモジュールは実際には他のモジュールと同じです。

私はZFの第一人者ではなく、他の誰かのコードに取り組んでいるので、その問題を見つけるための出発点を教えてください。

前もって感謝します。

編集:私は追加情報を持っています。

ViewModelの代わりにJsonModelを使用すると機能します。ご存知かもしれませんが、JsonModelはViewModelを拡張します。

4

1 に答える 1

1

コントローラのアクションを適切に投稿していないので、これは私があなたの問題に対して何ができるかを推測するものです。

Zend Framework 2には、モジュール内でコントローラーを拡張するさまざまなタイプのコントローラーがあります。

たとえば、AbstractActionControllerからコントローラーを拡張した場合、ビューは適切に返されます。

したがって、ここでの問題は、他のモジュールにAbstractActionControllerを拡張するコントローラーがあることです。ビューを正しく返さないこのモジュールは、ビューを拡張していない可能性があります。代わりに、restfulcontrollersなどの他のコントローラーを拡張している可能性があります

また、モジュールのmodule.phpファイルをチェックインして、module.config.phpからこのモジュールのブートストラップに適用されたjson戦略などの戦略があるかどうかを確認する必要があります。

例えば。

return array(
    'view_manager' => array(
        'strategies' => array(
           'ViewJsonStrategy',
        ),
    ),
)

また、module.config.phpファイルをチェックして、テンプレートに対するviewmanagerの適切な仕様があるかどうかを確認しました。

例:。

'view_manager' => array(
        'template_path_stack' => array(
            'album' => __DIR__ . '/../view',
        ),
    ),

お役に立てれば 。

于 2013-03-07T18:07:49.497 に答える