0

その中からコントローラーにビュー呼び出しをしたい。C#.NET MVC 4.0 に似ています。

私の見解では、私は持っているかもしれません:

  • ヘッダ
  • 管理ナビゲーション
  • 通常のナビゲーション
  • ページ コンテンツ (3 つの部分に分かれている、何かのリスト、何か他のもののリスト、メイン ページのコンテンツ
  • フッター

これらのパーツはすべて再利用可能なセクションです。ほとんどの場合、ページのヘッダー、通常のナビゲーション、およびフッターの部分を常に持つことになります。

私のコントローラーはデータベース呼び出しを行ってモデルを取得し、それをビューに送ります。このコードについて二度と心配する必要はないので、このコントローラーの結果を任意のビューから呼び出したいだけです: 疑似コード:

テンプレート ビュー: base.html.php

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title><?php $view['slots']->output('title', 'Welcome!') ?></title>
        <?php $view['slots']->output('stylesheets') ?>
        <link rel="shortcut icon" href="<?php echo $view['assets']->getUrl('favicon.ico') ?>" />
    </head>
    <body>
        <?php echo $view['actions']->render(SomethingBundle:Navigation:index); ?> // THIS LINE HERE
        <h1><?php $view['slots']->output('pageTitle') ?></h1>
        <?php $view['slots']->output('_content') ?>
    </body>

これは私のテンプレート ページで、このページにナビゲーション ビューを含めることができると期待していますが、ナビゲーションにはモデルが必要なため、ナビゲーション コントローラーにも依存します。

ナビゲーション コントローラ: Controller/NavigationController

class NavigationController extends Controller
    {
        public function indexAction()
        {
            return $this->render(SomethingBundle:Navigation:index.html.php');
        }
    }

ナビゲーション ビュー: index.html.php

<ul>
    <li>Home</li>
    <li>About</li>
</ul>

明らかに、上記のコードは機能しません。コントローラーの結果をビューにどのように含めますか?

上記のコードから得られるエラーは次のとおりです。

[2/2] NotFoundHttpException: No route found for "GET Navigation:index"  -+  
[1/2] ResourceNotFoundException:   -+ 
4

1 に答える 1

1
<?php echo $view['actions']->render(
    new \Symfony\Component\HttpKernel\Controller\ControllerReference(
        'YourBundle:NavigationController:index'
    )
) ?>
于 2013-10-09T11:39:35.683 に答える