如何在 laravel 5 中设置自定义验证规则和错误消息
How to set custom validation rules and error message in laravel 5
我的表单中有一个地址字段,通过使用给定的地址,我为此获取了 lat & long
并将其保存到数据库中..
如果用户输入了错误的地址,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()) {
..
}
}
我应该怎么做...
谁能帮帮我..
谢谢,
您需要创建请求验证Class 新表单请求。
- 创建新请求Class
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'
];
}
}
在您的控制器方法中使用地图请求 class:例如,MapController:
public function store(MapRequest $request)
{
// process your logic to here!
}
我的表单中有一个地址字段,通过使用给定的地址,我为此获取了 lat & long
并将其保存到数据库中..
如果用户输入了错误的地址,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()) {
..
}
}
我应该怎么做... 谁能帮帮我..
谢谢,
您需要创建请求验证Class 新表单请求。
- 创建新请求Class
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'
];
}
}
在您的控制器方法中使用地图请求 class:例如,MapController:
public function store(MapRequest $request) { // process your logic to here! }