Laravel验证字符串错误消息
问题描述:
我想将laravel验证错误数组转换为逗号分隔的字符串。这是用于ios应用程序的api服务。以便iOs开发人员可以轻松处理错误消息。Laravel验证字符串错误消息
我试过,
$valArr = [];
foreach ($validator->errors() as $key => $value) {
$errStr = $key.' '.$value[0];
array_push($valArr, $errStr);
}
if(!empty($valArr)){
$errStrFinal = implode(',', $valArr);
}
但它无法正常工作。
答
You are not converting validation errors to array.Please use the below function and pass validation errors as parameter.
public function validationErrorsToString($errArray) {
$valArr = array();
foreach ($errArray->toArray() as $key => $value) {
$errStr = $key.' '.$value[0];
array_push($valArr, $errStr);
}
if(!empty($valArr)){
$errStrFinal = implode(',', $valArr);
}
return $errStrFinal;
}
//Function call.
$result = $this->validationErrorsToString($validator->errors());
答
你应该这样做:
$errorString = implode(",",$validator->messages()->all());
附:假设
$validator = Validator::make($dataToBeChecked,$validationArray,$messageArray)
答
的$validator->errors()
回报MessageBag
,
见:https://laravel.com/api/5.3/Illuminate/Support/MessageBag.html。
你接近,你需要调用errors()
的getMessages()
功能,所以:
foreach ($validator->errors()->getMessages() as $key => $value) {
希望这有助于:)