0
votes

In my application, custom validation for address field not working, but other fileds are working. No idea regarding the issue.

View

<div class="col-md-4">
    <label for="email">Location:</label>
    <div class="form-group">
        <input name="address" id="autocomplete" placeholder="Enter your address"
         onFocus="geolocate()" class="form-control" value="{!!$company->address!!}" type="text"></input>
    </div>
</div>

Controller

$this->validate($request, [
    'name' => 'required|regex:/^[a-zA-Z .0-9]+$/',
    'office_mail' => 'required|email|max:255',
    'address' => 'required|regex:/^[a-zA-Z ,0-9]+$/',
    'industry_id' => 'required',
    'contact_number' => 'numeric|digits_between:10,12',
    'company_website_url' => 'required|url',
]);

Validation.php

'custom' => [
    'name' => [
        'required' => 'Your name is required',
    ],
    'address' => [
        'required' => 'The location field is required',
    ],
    'address' => [
        'regex' => 'Please enter a valid location',
    ],
    'company_id' => [
        'required' => 'The company field is required',
    ],
]

The custom validation for name is working, I get "Your name is required" validation message.But for address field I'am getting 'The address field is required' instead of 'The location field is required'

2

2 Answers

5
votes
'custom' => [
'name' => [
    'required' => 'Your name is required',
],
'address' => [
    'required' => 'The location field is required',
    'regex' => 'Please enter a valid location',
],
'company_id' => [
    'required' => 'The company field is required',
]
]
2
votes

Because your define address field 2 times in array so 1st one override by 2nd .

In 2nd array no message for required filed that is the reason its displaying default message

'address' => [
    'regex' => 'Please enter a valid location', // No message for required
],

Need change it to :

'address' => [
    'required' => 'The location field is required',
    'regex' => 'Please enter a valid location',
],