このページで、カスタムアクションのルートを追加する方法を見つけました。
protected function configureRoutes(RouteCollection $collection) {
$collection->add('ispremium', $this->getRouterIdParameter().'/ispremium');
}
その後、Adminクラスにカスタムアクションを追加します。
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('id')
->add('code', null, array('label' => 'Code'))
->add('_action', 'actions', array(
'actions' => array(
'ispremium' => array(
'template' => 'AppMyBundleBundle:Admin:ispremium.html.twig'
)
)
))
;
}
次のようなURLが生成されました。
/app_dev.php/admin/mobispot/discodes/discode/300876/ispremium
このリンクの私のテンプレート:
<a href="{{ admin.generateObjectUrl('ispremium', object) }}">Link</a>
私はこの問題を解決する方法を知りません:
そのルートパスのカスタムコントローラーを定義するにはどうすればよいですか?今私はエラーがあります:
メソッド「Sonata\AdminBundle \ Controller \ CRUDController::ispremiumAction」は存在しません。
generateUrlメソッドで生成されたURLを変更できますか?