2016-05-01 124 views
1

使用Laravel Form Request Validation
如何自定义响应格式

例如,它显示错误信息为: -Laravel请求确认消息格式化

{ 
    "password": ["The password field is required."], 
    "password_confirmation": ["The password confirmation field is required."] 
} 

我希望把所有的错误信息到描述属性,有点像。

{ 
    "status" : false, 
    "description" : ["The password field is required.", "The password confirmation field is required."] 
} 

回答

0

它的正下方在您提供的文档链接:

您可以通过 重写消息的方法,通过定制的形式请求中使用的错误消息。此方法应该返回一个数组 属性/规则对及其相应的错误消息。

所以,把这个在您的要求:

public function messages() 
{ 
    return [ 
     'password.required' => 'The password field is required.', 
     'password_confirmation.required' => 'The password confirmation field is required.', 
    ]; 
} 
0
public function rules() 
    { 

     return [ 
     'password' => [ 'required' , 'min:4','confirmed' ] , 
     'password_confirmation' => [ 'required' , 'min:4' ] 
      ]; 

    } 
0

另一种方法来创建自定义的验证消息将自己的消息数组传递给你的控制器动作validate功能。 validate函数将自定义消息作为第三个参数。

public function listing(Request $request) 
{ 
    $messages = [ 
     'search_input.alpha_dash' => 'Please enter a valid search term. Only use letters, dashes and underscores.', 
    ]; 

    $this->validate($request, [ 
     'search_input' => 'alpha_dash', 
    ], $messages); 


    return view('videos.index'); 
} 
0

撤出所有错误信息到一个数组,你需要做这样的事情...

$validator = Validator::make($request->all(), [ 
    'password' => 'required', 
    'password_confirmation' => 'required|same:password', 
]); 

$messages = $validator->errors()->toArray(); 
/* ** This will give you something like this ** 
* 
*  'password' => 'The password field is required.', 
*  'password_confirmation' => 'The password confirmation field is required.' 
* 
* **/ 

// If you want only array values - as your example of description, then use php's array_values() method like this... 

$description_arr = array_values($messages); 

感谢希望这将帮助你.. !! 要更好地了解Laravel验证,请通过其文档 - Laravel Validation Docs