Suganya Rajasekar
Suganya Rajasekar

Reputation: 684

How to set custom validation rules and error message in laravel 5

I'm having an address field in my form,by using the address given I fetch that lat & long for that and save it into DB..

If the user enter's wrong address the lat & long would be null..

So here I need to add a new validator rule for that field..

Here is my code,

I tried something like this..But Don't know how to do this..

public function getLatlan( $address = '')
{
    $formattedAddr = str_replace(' ','+',$address);
    $geocodeFromAddr = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.$formattedAddr.'&sensor=false'); 
    $output = json_decode($geocodeFromAddr);
    $data['latitude']  = $output->results[0]->geometry->location->lat; 
    $data['longitude'] = $output->results[0]->geometry->location->lng;
    return $data;
}

function postSave( Request $request)
{

    $rules = $this->validateForm();
    $address_validate   = array('location'      =>'enter valid address');

    if($_REQUEST['location'] != ''){
        $data = $this->getLatlan($_REQUEST['location']);
    }
    if($data['latitude'] == '' || $data['longitude'] == ''){
        array_merge($rules,$address_validate);
    }
    $validator = Validator::make($request->all(), $rules);
    if ($validator->passes()) {
        ..
    }
}

How should I do this... Could someone help me..

Thank you,

Upvotes: 0

Views: 1371

Answers (1)

Dhaval Tailored
Dhaval Tailored

Reputation: 396

You've need to create request validation Class new form Request.

  1. Create New Request Class

App/Requests/MapRequest.php
and

namespace App\Http\Requests;
use App\Http\Requests\Request;
class MapRequest extends Request
{
    public function rules()
    {
        return [
            'lat' => 'required|min:2',
            'long' => 'required',
        ];
    }
    public function messages()
    {
        return [
            'lat.required' => 'Required Message',
            'lat.min' => 'Minimum value message',
            'long.required' => 'Required Message'
        ];
    }
}
  1. Use Map Request class into your controller method: for example, MapController:

    public function store(MapRequest $request)
    {
         // process your logic to here! 
    }
    

Upvotes: 3

Related Questions