2016-11-17 112 views
0

我有一个formMapper索纳塔。我已添加prePersist和preUpdate功能,他们在批准更改之前执行一些检查。索纳塔管理员,自定义flashBag

如果失败,我想显示一个很好的错误消息。我看到有一些标志可以使用,但没有什么真正有趣的。更重要的是,回报错误并不能阻止行动。

有人知道我该如何管理此功能?

非常感谢。

回答

0

我真的不明白你在文档中没有得到什么。 Here它说,在你的控制器,你需要添加

$session->getFlashBag()->add('key', 'message'); 

,并使之在视图中:

{% for message in app.session.flashbag.get('key') %} 
    <p>{{ message }}</p> 
    {% endfor %} 
0

可以显示在你的钩闪消息访问getRequest方法。

public function prePersist($object) { 
    $this->getRequest()->getSession()->getFlashBag()->add('error', 'Error message'); 
} 

要停止从管理员钩内的动作,我发现,最好的办法是抛出一个ModelManagerException。事实上,这个特殊的例外是由CRUDController处理的。 不干净我不得不承认,但有效。

注意:访问闪存包的方式可能与您的SonataAdmin版本有所不同。

-1

你可能要搜索的是custom validator constraint

当您提交奏鸣曲表单时,验证器将自动检查所有验证器约束。如果出现错误,则实体不会持久保存,并显示一条好消息(取决于您设置的约束验证消息)。

相关问题