2016-11-17 172 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

當您提交奏鳴曲表單時,驗證器將自動檢查所有驗證器約束。如果出現錯誤,則實體不會持久保存,並顯示一條好消息(取決於您設置的約束驗證消息)。