私はプロジェクトを持っており、バックエンドにsymfony 2
を使用しています。より多くの機能のためにそれらを拡張するためにSonataAdminBundle
a をオーバーライドするにはどうすればよいですか?dashboardAction()
3085 次
1 に答える
8
このソナタ管理者のルーティング構成は、次の場所にあります。
// vendor/bundles/Sonata/AdminBundle/Resources/config/routing/sonata_admin.xml
<route id="sonata_admin_dashboard" pattern="/dashboard">
<default key="_controller">SonataAdminBundle:Core:dashboard</default>
</route>
DashboardActionsを拡張するコントローラーを保持する「My/AdminBundle」という名前のバンドルがあるとします。次に、次のことを試してください。
/My/AdminBundle/Controller/CoreController.phpにコントローラーを作成します
namespace My\AdminBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpFoundation\Response; use Sonata\AdminBundle\Controller\CoreController as BaseCoreContBroller; class CoreController extends BaseCoreContBroller { public function dashboardAction() { // your custom code // call parent method parent::dashboardAction(); } }
/My/AdminBundle/Resources/config/routing.ymlにあるバンドルルーティング構成ファイルを開きます(xmlなどの異なる構成形式がある場合があります)
sonata_admin_dashboard: パターン:/ dashboard デフォルト:{_controller:MyAdminBundle:Core:dashboard}
- アプリケーションルーティング構成ファイルを開き、ソナタ構成の後に以下を追加して、それをオーバーライドするようにします
管理者: リソース:'@SonataAdminBundle / Resources / config / routing / sonata_admin.xml' プレフィックス:/ admin _sonata_admin: 資源: 。 タイプ:sonata_admin プレフィックス:/ admin MyAdminBundle: リソース: "@ MyAdminBundle / Resources / config / routing.yml" プレフィックス:/ admin
免責事項は、私がプロジェクトでこれを使用したことがないことを知っているためです。私はそれをローカルでチェックするだけで、うまくいきました。これが最善の解決策ではない可能性があります。
お役に立てれば
于 2012-01-04T22:34:40.903 に答える