Laravel Validation custom message

laravel, laravel-4, php

Solution

Here is the way to do it , just instead of using 'regex' , use 'phone.regex'

$rules = [
    'first_name'            => 'required|alpha|min:2',
    'last_name'             => 'required|alpha|min:2',
    'email'                 => 'required|email|unique:users,email,' . Input::get('id') . ',id',
    'password'              => 'alpha_num|between:6,12|confirmed',
    'password_confirmation' => 'alpha_num|between:6,12',
    'address'               => 'regex:/^[a-z0-9- ]+$/i|min:2',
    'city'                  => 'alpha|min:2',
    'state'                 => 'alpha|min:2|max:2',
    'zip'                   => 'numeric|min:5|max:5',
    'phone'                 => 'regex:/^\d{3}\-\d{3}\-\d{4}$/',
];
$messages = [
    'unique'        => 'The :attribute already been registered.',
    'phone.regex'   => 'The :attribute number is invalid , accepted format: xxx-xxx-xxxx',
    'address.regex' => 'The :attribute format is invalid.',
];

Problem

I am facing a problem with laravel custom validation message, here is what I have: ``` $rules = [ 'first_name' => 'required|alpha|min:2', 'last_name' => 'required|alpha|min:2', 'email' => 'required|email|unique:users,email,' . Input::get('id') . ',id', 'password' => 'alpha_num|between:6,12|confirmed', 'password_confirmation' => 'alpha_num|between:6,12', 'address' => 'regex:/^[a-z0-9- ]+$/i|min:2', 'city' => 'alpha|min:2', 'state' => 'alpha|min:2|max:2', 'zip' => 'numeric|min:5|max:5', 'phone' => 'regex:/^\d{3}\-\d{3}\-\d{4}$/', ]; $messages = [ 'unique' => 'The :attribute already been registered.', 'regex' => 'The :attribute number has to be formated : xxx-xxx-xxxx.', ]; ``` Now if there is a problem with the address or the phone number since both have regex validation rule , the error message will be : The :attribute number has to be formated : xxx-xxx-xxxx, How could I have custom message for each different one ??

Original source

Related problems