脱钩CRUDController
编辑该页面脱钩CRUDController
在创建自定义动作时,我们可以创建控制器没有延长CRUDController
。我们通常需要访问管理
实例相关联的动作,这样做我们可以type-hint管理类或使用AdminFetcherInterface
服务。
你可以添加你的管理行动的参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/ / src /控制器/ CarAdminController.php名称空间应用程序\控制器;使用ob娱乐下载\组件\HttpFoundation\RedirectResponse;最后类CarAdminController{公共函数克隆(CarAdmin美元管理,请求美元请求){美元对象=美元管理- >getSubject ();/ /……美元请求- >getSession ()- >getFlashBag ()- >add (“sonata_flash_success”,“克隆成功”);返回新RedirectResponse (美元管理- >generateUrl (“列表”));}}
或者如果你有一个可重用的行动所有管理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
/ / src /控制器/ CarAdminController.php名称空间应用程序\控制器;使用奏鸣曲\AdminBundle\管理\AdminInterface;使用ob娱乐下载\组件\HttpFoundation\RedirectResponse;最后类CloneAdminController{公共函数克隆(AdminInterface美元管理,请求美元请求){美元对象=美元管理- >getSubject ();/ /……美元请求- >getSession ()- >getFlashBag ()- >add (“sonata_flash_success”,“克隆成功”);返回新RedirectResponse (美元管理- >generateUrl (“列表”));}}
或者您也可以使用AdminFetcherInterface
服务获取的管理要求,在这个例子中,我们改变了控制器使它调用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27日28
/ / src /控制器/ CarAdminController.php名称空间应用程序\控制器;使用ob娱乐下载\组件\HttpFoundation\RedirectResponse;最后类CarAdminSoldAction{私人AdminFetcherInterface美元adminFetcher;公共函数__construct(AdminFetcherInterface美元adminFetcher){美元这- >adminFetcher =美元adminFetcher;}公共函数__invoke(请求美元请求){美元管理=美元这- >adminFetcher- >get (美元请求);美元对象=美元管理- >getSubject ();/ /……美元请求- >getSession ()- >getFlashBag ()- >add (“sonata_flash_success”,“成功”);返回新RedirectResponse (美元管理- >generateUrl (“列表”));}}
现在我们只需要添加的新路线configureRoutes
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
使用应用程序\控制器\CarAdminCloneAction;使用奏鸣曲\AdminBundle\路线\RouteCollectionInterface;受保护的函数configureRoutes(RouteCollectionInterface美元集合){美元集合- >add (“克隆”,美元这- >getRouterIdParameter ()。/克隆的,(“_controller”= >“App \控制器\ CarAdminController:克隆”,)/ /使用调用控制器:- >add (“出售”,美元这- >getRouterIdParameter ()。/销售的,(“_controller”= > CarAdminSoldAction::类,]);}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。