Php Symfony EasyAdminBundle-如何以实体形式添加自定义操作?
我正在使用Symfony 3.1.9中的EasyAdminBundle 我设法自定义列表中的操作,并在此处进行了详细说明: 但是我没有找到任何文档来在表单中添加自定义实体操作 我的目标是在“保存”、“删除”和“返回列表”按钮附近添加,这是一个保存当前实体并重定向到当前编辑表单(而不是作为默认行为返回列表)的按钮Php Symfony EasyAdminBundle-如何以实体形式添加自定义操作?,php,symfony,symfony2-easyadmin,Php,Symfony,Symfony2 Easyadmin,我正在使用Symfony 3.1.9中的EasyAdminBundle 我设法自定义列表中的操作,并在此处进行了详细说明: 但是我没有找到任何文档来在表单中添加自定义实体操作 我的目标是在“保存”、“删除”和“返回列表”按钮附近添加,这是一个保存当前实体并重定向到当前编辑表单(而不是作为默认行为返回列表)的按钮 如果您的目标只是重定向回同一实体表单的编辑操作,而不是重定向到列表操作,请提前感谢您。像这样很简单。假设您正在执行产品实体的新操作,并希望在保存新产品后返回编辑 public fun
如果您的目标只是重定向回同一实体表单的编辑操作,而不是重定向到列表操作,请提前感谢您。像这样很简单。假设您正在执行产品实体的新操作,并希望在保存新产品后返回编辑
public function newProductAction()
{
$response = parent::newAction();
if ($response instanceof RedirectResponse) {
$entity = $this->getCurrentEntity();
return $this->redirectToRoute('admin', [
'entity' => 'Product',
'action' => 'edit',
'id' => $entity->getId()
'menuIndex' => 1
]);
}
return $response;
}
这里有两点要记住menuIndex是用于活动菜单类的,所以它可能会根据您的顺序进行更改。重定向路由“admin”应该是您的easyadmin后端路由。我可能弄脏了一些东西,但它可以工作 我已覆盖编辑操作:
public function editAction()
{
$response = parent::editAction();
if ($response instanceof RedirectResponse) {
$request = Request::createFromGlobals();
return $this->redirect(urldecode($request->request->get('referer')));
}
return $response;
}
方法$this->getCurrentEntity()未知
我还用jQuery覆盖了edit.html.twig,在基本按钮旁边添加了另一个按钮:
var cloned = $( "button.action-save" );
var clone = cloned.clone();
cloned.after(clone);
clone.addClass('action-save-stay')
clone.html('<i class="fa fa-save"></i>{{ 'action.save_stay'|trans }}');
$('.action-save-stay').bind('click', function(e) {
e.preventDefault();
$('input[name="referer"]').val(window.location.href);
$('form').submit();
});
var cloned=$(“button.action保存”);
var clone=clone.clone();
克隆。之后(克隆);
clone.addClass('action-save-stay')
html(“{”action.save_stay“{trans}”);
$('action save stay').bind('click',函数(e){
e、 预防默认值();
$('input[name=“referer”]').val(window.location.href);
$('form').submit();
});
它更改名为referer的隐藏输入。
默认情况下,easyadmin重定向到查询字符串中包含的referer
非常感谢你给我指明了正确的方向