我想将laravel验证错误数组转换为逗号分隔的字符串.这是用于ios应用程序的api服务.这样iO开发人员就可以轻松处理错误消息.
我试过了,
$valArr = [];
foreach ($validator->errors() as $key => $value) {
$errStr = $key.' '.$value[0];
array_push($valArr, $errStr);
}
if(!empty($valArr)){
$errStrFinal = implode(',', $valArr);
}
Run Code Online (Sandbox Code Playgroud)
但它没有用.
你应该这样做:
$errorString = implode(",",$validator->messages()->all());
Run Code Online (Sandbox Code Playgroud)
PS假设
$validator = Validator::make($dataToBeChecked,$validationArray,$messageArray)
Run Code Online (Sandbox Code Playgroud)
小智 5
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());
Run Code Online (Sandbox Code Playgroud)
返回$validator->errors()a MessageBag,
请参阅: https: //laravel.com/api/5.3/Illuminate/Support/MessageBag.html。
你已经很接近了,你需要调用getMessages()上的函数errors(),所以:
foreach ($validator->errors()->getMessages() as $key => $value) {
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 :)
| 归档时间: |
|
| 查看次数: |
4275 次 |
| 最近记录: |