私はformMapper Sonataを持っています。変更を承認する前にいくつかのチェックを行っているprePersist関数とpreUpdate関数を追加しました。Sonata Admin、custom flashBag
エラーが発生した場合は、エラーメッセージを表示したいと思います。私はいくつかの旗がありますが、本当に面白いことは何もないことを見ました。さらに、falseを返してもアクションは停止しません。
私はこの機能をどのように管理できますか?
ありがとうございます。
私はformMapper Sonataを持っています。変更を承認する前にいくつかのチェックを行っているprePersist関数とpreUpdate関数を追加しました。Sonata Admin、custom flashBag
エラーが発生した場合は、エラーメッセージを表示したいと思います。私はいくつかの旗がありますが、本当に面白いことは何もないことを見ました。さらに、falseを返してもアクションは停止しません。
私はこの機能をどのように管理できますか?
ありがとうございます。
私はあなたがdocに入っていないことを本当に理解していません。 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です。
ソリッドフォームを提出すると、バリデータは自動的にバリデータの制約をすべてチェックします。エラーがある場合、エンティティは永続化されず、(設定した制約の検証メッセージに応じて)素敵なメッセージが表示されます。