Sonata 管理员:每个批处理操作的特定 batch_confirmation 模板
Sonata admin : specific batch_confirmation template per batch action
今天上班,我必须在 Sonata 项目中创建自定义批处理操作。
没关系,问题是:
我想为我的新批处理操作设置一个特定的 batch_confirmation 模板,
我需要它对其他人没有影响。
如果不存在解决方案,我将覆盖默认的 batch_confirmation 模板,在我的奏鸣曲配置中更改它,并制作许多 'if' 语句来为我的其他管理员保留基本确认 类,但我认为这不是更清洁的选择。
有人遇到过这种问题吗?
当您添加自定义批处理操作时,您需要在控制器中添加一个自定义操作来扩展普通的 CRUD 控制器,请参阅:https://sonata-project.org/bundles/admin/master/doc/reference/batch_actions.html。
而不是 return 重定向响应,就像您在文档中看到的那样:您可以 return 任何模板,例如:
return $this->render(
'YourBundle:Batch:confirmation.html.twig',
$templateParams
);
在此确认模板中,您可以添加自定义 html。当您想要确认批处理方法时,您需要一个表单,该表单使用您需要的数据回传到您的自定义操作。
从batch_confirmation.html.twig复制表格到你自己的确认模板。在原来的batch_confirmation模板中,设置了一个隐藏字段来检查用户是否确认:<input type="hidden" name="confirmation" value="ok">
如果用户确认(检查请求对象),请检查您的自定义操作。然后执行批处理操作。 (您也可以return第二步模板,构建向导)。
终于抛出一些闪现信息
$this->addFlash('sonata_flash_success', 'everything is ok!');
和
return 到列表 url:
return new RedirectResponse($this->admin->generateUrl('list', array('filter' => $this->admin->getFilterParameters())));
即使晚了一点
但对于遇到同样问题的新手来说,解决方法很简单,在函数configureBatchActions中你可以sepcify确认模板:
protected function configureBatchActions($actions)
{
$actions['YourAction'] = [
'ask_confirmation' => true,
'template' => 'YourTemplate'
];
return $actions;
}
今天上班,我必须在 Sonata 项目中创建自定义批处理操作。
没关系,问题是:
我想为我的新批处理操作设置一个特定的 batch_confirmation 模板, 我需要它对其他人没有影响。
如果不存在解决方案,我将覆盖默认的 batch_confirmation 模板,在我的奏鸣曲配置中更改它,并制作许多 'if' 语句来为我的其他管理员保留基本确认 类,但我认为这不是更清洁的选择。
有人遇到过这种问题吗?
当您添加自定义批处理操作时,您需要在控制器中添加一个自定义操作来扩展普通的 CRUD 控制器,请参阅:https://sonata-project.org/bundles/admin/master/doc/reference/batch_actions.html。
而不是 return 重定向响应,就像您在文档中看到的那样:您可以 return 任何模板,例如:
return $this->render(
'YourBundle:Batch:confirmation.html.twig',
$templateParams
);
在此确认模板中,您可以添加自定义 html。当您想要确认批处理方法时,您需要一个表单,该表单使用您需要的数据回传到您的自定义操作。
从batch_confirmation.html.twig复制表格到你自己的确认模板。在原来的batch_confirmation模板中,设置了一个隐藏字段来检查用户是否确认:<input type="hidden" name="confirmation" value="ok">
如果用户确认(检查请求对象),请检查您的自定义操作。然后执行批处理操作。 (您也可以return第二步模板,构建向导)。
终于抛出一些闪现信息
$this->addFlash('sonata_flash_success', 'everything is ok!');
和 return 到列表 url:
return new RedirectResponse($this->admin->generateUrl('list', array('filter' => $this->admin->getFilterParameters())));
即使晚了一点 但对于遇到同样问题的新手来说,解决方法很简单,在函数configureBatchActions中你可以sepcify确认模板:
protected function configureBatchActions($actions)
{
$actions['YourAction'] = [
'ask_confirmation' => true,
'template' => 'YourTemplate'
];
return $actions;
}