2016-09-14 8 views
0

私はSonataの公式サイトのthis sectionをフォローして、メニューにカスタムコントローラを追加しようとしています。Sonataメニューにカスタムコントローラーエントリを追加します

私が持っているのは動作中のコントローラです。

class HelloController extends Controller { 

    /** 
    * 
    * @Template() 
    * @param type $name 
    * @return type 
    */ 
    public function indexAction($name) 
    { 
     $admin_pool = $this->get('sonata.admin.pool'); 

     return array(
      'admin_pool' => $admin_pool, 
      'name' => $name 
     ); 
    } 
} 

私はservices.ymlファイルにサービスとしてコントローラを登録しました。

app.hello_controller: 
    class: AppBundle\Controller\HelloController 

最後に、コントローラルートをメニューにアイテムとして追加しました。

sonata_admin: 
    dashboard: 
     groups: 
      Monitoring: 
       items: 
        - app.hello_controller 

これでエラーが発生しました。

例外が SonataAdminBundleでテンプレート (「管理サービス 『app.hello_controller』管理プールで見つかりません。」)のレンダリング中にスローされました:コア:5行目でadd_block.html.twig。

メニュー項目をこのように追加するには、誰かが私に行方不明を教えてください。

答えて

2

あなたの設定を修正する必要があります。あなたの例では、サービスIDがapp.hello_controllerの管理サービスをメニューに追加しています。あなたがする必要がどのような

は、コントローラから1特定のルート/アクションを追加するには、次の設定を追加します:

config.yml

sonata_admin: 
    dashboard: 
     groups: 
      Monitoring: 
       items: 
        - route:  your_route_name 
         label:  Your Menu Item Label 
関連する問題