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) { 

希望这有助于:)