我有一个formMapper索纳塔。我已添加prePersist和preUpdate功能,他们在批准更改之前执行一些检查。索纳塔管理员,自定义flashBag
如果失败,我想显示一个很好的错误消息。我看到有一些标志可以使用,但没有什么真正有趣的。更重要的是,回报错误并不能阻止行动。
有人知道我该如何管理此功能?
非常感谢。
我有一个formMapper索纳塔。我已添加prePersist和preUpdate功能,他们在批准更改之前执行一些检查。索纳塔管理员,自定义flashBag
如果失败,我想显示一个很好的错误消息。我看到有一些标志可以使用,但没有什么真正有趣的。更重要的是,回报错误并不能阻止行动。
有人知道我该如何管理此功能?
非常感谢。
我真的不明白你在文档中没有得到什么。 Here它说,在你的控制器,你需要添加
$session->getFlashBag()->add('key', 'message');
,并使之在视图中:
{% for message in app.session.flashbag.get('key') %}
<p>{{ message }}</p>
{% endfor %}
可以显示在你的钩闪消息访问getRequest
方法。
public function prePersist($object) {
$this->getRequest()->getSession()->getFlashBag()->add('error', 'Error message');
}
要停止从管理员钩内的动作,我发现,最好的办法是抛出一个ModelManagerException
。事实上,这个特殊的例外是由CRUDController处理的。 不干净我不得不承认,但有效。
注意:访问闪存包的方式可能与您的SonataAdmin版本有所不同。
你可能要搜索的是custom validator constraint。
当您提交奏鸣曲表单时,验证器将自动检查所有验证器约束。如果出现错误,则实体不会持久保存,并显示一条好消息(取决于您设置的约束验证消息)。