Laravel validation Error messages to string

时光怂恿深爱的人放手 提交于 2019-12-05 02:31:23

问题


I want to convert laravel validation error array to a comma separated string. This is to use in an api service for an ios application. So that the iOs developer can process error messages easily.

I tried,

    $valArr = [];
    foreach ($validator->errors() as $key => $value) { 
        $errStr = $key.' '.$value[0];
        array_push($valArr, $errStr);
    }
    if(!empty($valArr)){
        $errStrFinal = implode(',', $valArr);
    }

But it is not working.


回答1:


You should do like this :

$errorString = implode(",",$validator->messages()->all());

P.S. Assuming

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



回答2:


The $validator->errors() returns a MessageBag,

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

You are close, you need to call the getMessages() function on errors(), so:

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

Hope this helps :)




回答3:


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


来源:https://stackoverflow.com/questions/44517760/laravel-validation-error-messages-to-string

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!