0

私は Symfony 3.1.2 を使用し、base.html.twig 内に単純なナビゲーション テンプレート (小枝) を実装しようとしています。

<!DOCTYPE html>
<html>
    <head>
        ...
    </head>
    <body>
    {{ render(controller('AppBundle:Navigation:topNavigation')) }}
    {% block body %}{% endblock %}
    {% block javascripts %}{% endblock %}
    </body>
</html>

デフォルトのディレクトリにある navigation.html.twig テンプレートは次のようになります

    <div id="navigation-wrapper">
        <ul id="navigation">
        {% for item in navigation %}
            <li><a href="{{ item.url }}">{{ item.label }}</a></li>
        {% endfor %}
        </ul>
    </div>

AppBundle/Controller の NavigationController は次のようになります

namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class NavigationController extends Controller
    {
        public function topNavigation()
        {
            $navigation = array(
                array("url"=>"/login", "label"=>"Login"),
                array("url"=>"/register", "label"=>"Registrieren")
             );

            return $this->render('default/navigation.html.twig', array(
                'navigation' => $navigation,));
        }
}

エラーはありません。NavigationController->topNavigation は実行されませんでした。何もレンダリングされておらず、何をすべきかわかりません。誰かアイデアはありますか?

4

1 に答える 1

0

すべて順調。Actionすべてのコントローラー メソッドにサフィックスが必要です。メソッドは次のNavigationControllerようになります。

public function topNavigationAction() {
    $navigation = array(
        array("url" => "/login", "label" => "Login"),
        array("url" => "/register", "label" => "Registrieren")
    );

    return $this->render('default/navigation.html.twig', array(
            'navigation' => $navigation,
    ));
}

それは確かに機能します。

于 2016-07-27T04:57:57.067 に答える