how to set single custom validation message for multiple input field?

Viewed 1288
public function rules(Request $request)
{
  if ($request->isMethod('POST')) {
    return [
      "skill" => "required|array",
      "skillyear.*" => "required_with:skill|numeric",
    ];
  }
 public function messages()
{
 return [
     'skill.required'=>'Select at least one skill',
     'skillyear.*.required_with'=>"Experience year is required for the selected skill"
];}

so, for each field i'm getting message like this enter image description here how can I get only one message for all these.

2 Answers

Use simple laravel validation in controller:

    public function getRequest(Request $request) {

                    $this->validate($request, [
                        'param1' => 'required',
                        'param2' => 'required'
                    ], [
                      'required' => 'Field is required'  
                       ], [
                        'param1' => 'field name 1 - message',
                        'param2' => 'field name 2 - message'
                    ]);

More: https://laravel.com/docs/5.5/validation

Change as below. Add a new element as skillyears and you you will get error in skillyears, to get single error

public function rules(Request $request)
{
  if ($request->isMethod('POST')) {
    $request->skillyears = count($request->skillyear);
    return [
      "skill" => "required|array",
      "skillyear.*" => "numeric",
      "skillyears" => "required_with:skill|min:1"
    ];
  }
 public function messages()
{
 return [
     'skill.required'=>'Select at least one skill',
     'skillyears.min' => "Experience year is required for the selected skill",
];}

May be it is not exact but you can get idea to make as you want

Related