2016-11-17 13 views
0

私はformMapper Sonataを持っています。変更を承認する前にいくつかのチェックを行っているprePersist関数とpreUpdate関数を追加しました。Sonata Admin、custom flashBag

エラーが発生した場合は、エラーメッセージを表示したいと思います。私はいくつかの旗がありますが、本当に面白いことは何もないことを見ました。さらに、falseを返してもアクションは停止しません。

私はこの機能をどのように管理できますか?

ありがとうございます。

答えて

0

私はあなたがdocに入っていないことを本当に理解していません。 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です。

ソリッドフォームを提出すると、バリデータは自動的にバリデータの制約をすべてチェックします。エラーがある場合、エンティティは永続化されず、(設定した制約の検証メッセージに応じて)素敵なメッセージが表示されます。

関連する問題