Reputation: 684
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
Reputation: 396
You've need to create request validation Class new form Request.
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'
];
}
}
Use Map Request class into your controller method: for example, MapController:
public function store(MapRequest $request)
{
// process your logic to here!
}
Upvotes: 3