Проверка валидатора Сообщения об ошибках в строке

Я хочу преобразовать массив ошибок проверки laravel в строку, разделенную запятой. Это должно использоваться в службе api для приложения ios. Чтобы разработчик iOs мог легко обрабатывать сообщения об ошибках.

Я пытался,

$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()); 

PS Предполагая

 $validator = Validator::make($dataToBeChecked,$validationArray,$messageArray) 

$validator->errors() возвращает MessageBag ,

см. https://laravel.com/api/5.3/Illuminate/Support/MessageBag.html .

Вы близки, вам нужно вызвать функцию getMessages() на errors() , чтобы:

 foreach ($validator->errors()->getMessages() as $key => $value) { 

Надеюсь это поможет 🙂