0

私はこのチュートリアルに従いました:

https://github.com/KnpLabs/KnpMenuBundle/blob/master/Resources/doc/index.md#installation

そして、次のエラーに遭遇しました:

An exception has been thrown during the rendering of a template ("Unable to generate a URL for the named route "page_show" as such route does not exist.") in /var/www/bundles/src/Acme/DemoBundle/Resources/views/Default/index.html.twig at line 4.

コントローラーに何かを渡すためにここで欠けているステップはありますか?

リンクから:

use Knp\Menu\FactoryInterface;
use Symfony\Component\DependencyInjection\ContainerAware;

class Builder extends ContainerAware
{
public function mainMenu(FactoryInterface $factory, array $options)
{
    $menu = $factory->createItem('root');

    $menu->addChild('Home', array('route' => 'homepage'));
    $menu->addChild('About Me', array(
        'route' => 'page_show',
        'routeParameters' => array('id' => 42)
    ));
    // ... add more children

    return $menu;
}
}

メニューを実際にレンダリングするには、任意の Twig テンプレートの任意の場所から次を実行します。

{{ knp_menu_render('AcmeDemoBundle:Builder:mainMenu') }}
4

2 に答える 2

1

実行してください./app/console router:debug- アプリケーションに登録されているすべてのルートが表示されます。page_show はそれらの 1 つではないと推測しています。

使用しているドキュメントでは、おそらく次のように独自のルート/ページをメニューに追加することを期待しています:

$menu->addChild('Home', array('route' => 'homepage'));

「ホームページ」がすでに存在している必要があります。「show_page」も同様です。そのため、show_page ルートへのリクエストを処理するコントローラーがどこかに必要です。または、アプリで既に定義したルートの show_page を交換します。私が理にかなっていることを願っています。

于 2014-06-10T03:59:57.080 に答える