问题描述
当我尝试在系统中使用无效属性注册新用户时,我想从Laravel表单请求中获取错误消息,并在Kotlin上使用此消息在UI中显示它们。问题是当我尝试获取此消息时。出于测试目的,我只想使用Log.e()查看消息和错误:
'`@{key}` == @{value}'.format(key=key,value=value)
首先,我在自定义表单请求上覆盖了FailedValidation方法:
response.body()?.message?.let { Log.e("error_message",it) }
response.body()?.validation_errors?.let { Log.e("error",it) }
这是在Kotlin中使用改造对后端的异步调用:
public function FailedValidation(Validator $validator)
{
$errors = $validator->errors(); // Array of errors.
throw new HttpResponseException(response()->json([
'message' => 'Validation error','error' => (string)$errors->toJson()
],422));
}
它定义的AuthResponse如下:
val user = User(name,email,password,password_confirmation)
val call = request.register(user)
/** Async call */
call.enqueue(object : Callback<AuthResponse> {
override fun onResponse(
call: Call<AuthResponse>,response: Response<AuthResponse>
) {
// It checks if status ~ 200
if (response.isSuccessful) {
//some code.
} else {
response.body()?.message?.let { Log.e("error_message",it) }
response.body()?.validation_errors?.let { Log.e("error",it) }
}
}
override fun onFailure(call: Call<AuthResponse>,e: Throwable) {
//some code.
}
})
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)