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