0

フロントエンドで使用しているコントローラーをオーバーライドしようとしています。

AcmeDemoBundle:DemoController       //route is /demo

バックエンドについては、AdminDemoBundleでこのコントローラーを拡張しました。

AdminDemoBundle:DemoController      //route is /admin/demo

新しいコントローラーのメソッドをまだオーバーライドしていませんが、AcmeDemoControllerからのすべてのルートは/ admin/demoに移動します。

誰かが理由を知っていますか?

バックエンドの目的でフロントエンドコントローラーをオーバーライドするソリューションはありますか?

4

1 に答える 1

0

基本的に、コントローラを拡張することにより、すべてのルートが同じ名前と異なるプレフィックスで再定義されます。これは、ルートが置き換えられることを意味します。

コントローラーは小型であることが意図されているため、バックエンド用にコントローラーを拡張することには実際にはまったく意味がありません。代わりに、アプリのロジックをサービスに保持する必要があります。

ロジックをサービスに移動すると、コードをより適切に編成できます。サービスについて話すとき、バックエンド/フロントエンドについて心配する必要はありません。ただ、サービスでロジックを作成し、フロントエンドコントローラーまたはバックエンドコントローラーのいずれかでメソッドを使用します。

于 2012-08-06T08:30:14.743 に答える