如何在laravel 5中设置自定义验证规则和错误消息


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

我的表单中有一个地址字段,通过使用给定的地址,我获取该字段的lat & long并将其保存到DB中。。

如果用户输入的地址错误,则lat & long将为空。。

因此,在这里我需要为该字段添加一个新的验证器规则。。

这是我的代码,

我试过这样的东西。。但是不知道怎么做。。

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()) {
        ..
    }
}

我该怎么做。。。有人能帮我吗

谢谢你,

您需要创建请求验证类新表单request。

  1. 创建新的请求类

App/Requests/MapRequest.php

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. 在控制器方法中使用Map Request类:例如,MapController:

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