ale*_*dra 3 symfony sonata-admin
我正在使用SonataAdminBundle在Symfony 2中生成一个后台并管理一些实体。我已经添加了我在创建表单想要的所有属性,并Soanta产生的三个键一视图:Create,Create and return to list,Create and add another。
现在,无论我选择保存表单的哪个按钮,Sonata都会重定向我进行编辑。我该如何更改?为什么它创建了按钮但不执行重定向?
小智 5
我遇到了同样的问题,但是我找到了解决方法。
您需要做的就是在模型管理控制器类(将Sonata \ AdminBundle \ Controller \ CRUDController扩展到其中)中覆盖函数“ redirectTo”:
/**
* redirect the user depend on this choice
*
* @param object $object
*
* @return Response
*/
protected function redirectTo($object)
{
$url = false;
if ($this->get('request')->get('btn_update_and_list') !== null) {
$url = $this->admin->generateUrl('list');
}
if ($this->get('request')->get('btn_create_and_list') !== null) {
$url = $this->admin->generateUrl('list');
}
if ($this->get('request')->get('btn_create_and_create') !== null) {
$params = array();
if ($this->admin->hasActiveSubClass()) {
$params['subclass'] = $this->get('request')->get('subclass');
}
$url = $this->admin->generateUrl('create', $params);
}
if (!$url) {
$url = $this->admin->generateObjectUrl('edit', $object);
}
return new RedirectResponse($url);
}
Run Code Online (Sandbox Code Playgroud)
您可以在SonataAdminBundle的CRUDController中找到此函数。
问题在于按钮的值为空,并且在if条件下将空字符串视为false。
我认为其他选择可能是增加按钮的价值,但我认为这种解决方案要简单得多。
这对我有用,但是我不能说这是完美的解决方案。:)
| 归档时间: |
|
| 查看次数: |
2687 次 |
| 最近记录: |