1

symfony2 のメニューに問題があります。メニューを含む最初のページのコンテンツをロードするクラスがあります:

public function indexAction(){
    $aMenu                          = Navigation::buildMenu();
    return $this->render('ShopDesktopBundle::layout.html.twig', array(
            'aProducts' => $aProducts,
            'aMenu'     => $aMenu
        ));
}

次に、新しいコントローラーを作成します。

class CategoryController extends Controller{
public function showCategoryAction($id){
    return $this->render('ShopDesktopBundle:Category:category.html.twig');
 }
} 

テンプレートを拡張します: layout.html.twig

{% extends 'ShopDesktopBundle::layout.html.twig' %}

エラーが発生します:

Variable "aMenu" does not exist in ShopDesktopBundle::layout.html.twig at line 89 

何がうまくいかないのでしょうか?ナビゲーション ブロックのみを含む新しいテンプレートを作成する必要がありますか?

4

2 に答える 2

0

controller に新しいメソッドを作成して、この問題を解決します。

public function menuAction(){
    $aMenu                          = Navigation::buildMenu();
    return $this->render('ShopDesktopBundle:Category:menu.html.twig', array(
        'aMenu'     => $aMenu
    ));
}

新しいビュー呼び出しを作成しました: menu.html.twig

そして、ブロックナビゲーションのlayout.html.twigに次を追加します:

{% block navigation %}
   {{ render(controller( 'ShopDesktopBundle:Home:menu' )) }}
{% endblock %}
于 2015-03-27T09:20:09.810 に答える