私は現在、再利用可能でクリーンな方法でアラートを実装する方法を見つけるのに苦労しています。 Playの点滅がリダイレクトのみを目的としているかどうかはわかりませんが、this postは、クラスResult
のインスタンスで点滅するための回避策があることを示しています。Playで複数のimplict値を扱うときに暗黙的にFlashを渡すにはどうすればよいですか?
回避策は、例えば、ビューのimplicit
パラメータを使用することを提案:
@(clientForm: Form[models.Client])(implicit flash: Flash)
そして、単にこのような何か:
val flash = play.api.mvc.Flash(Map("error" -> "Please select another id for this client"))
Ok(views.html.clients.new_client(boundForm)(flash))
を問題は、私は暗黙の複数を持っていないということです私のビューのパラメータ、id:
(implicit request: RequestHeader, messages: Messages, flash: Flash)
コンパイラc電話番号:
Unspecified value parameters: flash: Flash, messages: Messages
どうすればこの問題を解決できますか?
(削除された)回答に示唆されているように、flash
を暗黙的にすると、問題は解決しませんでした。私はまだ、このコンパイルエラーを取得:
ambiguous implicit values: both method request2flash in trait Controller of type (implicit request: play.api.mvc.RequestHeader)play.api.mvc.Flash and value flash of type play.api.mvc.Flash match expected type play.api.mvc.Flash
新しいエラーに示すようにrequest2flash方法を介してフラッシュする要求から起こっ暗黙の変換があるので、あなたはフラッシュ暗黙のパラメータを渡す必要はありません。 – Samar
メッセージエラーの場合は、 'import play.api.i18n.Messages.Implicits._'を試してください。 – Samar
help @Samarに感謝します。しかし、' flash'を暗黙的にしてビューに渡さないと、このコンパイルエラーが発生します。私はそれが 'フラッシュ'を導入する前にすべてが機能していたので、 'メッセージ'と何か関係があるとは思わない。アラートを再利用可能な方法で実装する方法について他に提案はありますか? –