В настоящее время я изо всех сил стараюсь найти способ внедрения предупреждений в многоразовой и чистой форме. Я не уверен, что вспышка Play предназначена только для переадресации, но this post указывает, что есть временное решение для мигания с экземплярами класса Result
.Как передать неявно Flash при работе с несколькими значениями implict в Play?
Обходной предлагает использовать 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 omplains с:
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
Спасибо за помощь @Samar, но когда вы делаете' flash' неявным и не передаете его в представление, я до сих пор получаю эту ошибку компиляции. Я не думаю, что это имеет какое-то отношение к «Сообщениям», поскольку все работало до введения «Flash». Есть ли у вас какие-либо другие рекомендации о том, как предупреждения могут быть реализованы повторно? –