Php Laravel验证器,在验证时添加参数
我已经开始修补Laravel中的验证器,似乎把自己编程到了一个角落 背景 我有一个方法,我用它来检查是否存在一个地址通过谷歌地图。因为我开始只有一个文件并在该文件中进行验证,所以我让它返回一个对象,其中包含经度和纬度是否匹配以及格式化的地址Php Laravel验证器,在验证时添加参数,php,laravel,validation,Php,Laravel,Validation,我已经开始修补Laravel中的验证器,似乎把自己编程到了一个角落 背景 我有一个方法,我用它来检查是否存在一个地址通过谷歌地图。因为我开始只有一个文件并在该文件中进行验证,所以我让它返回一个对象,其中包含经度和纬度是否匹配以及格式化的地址 return (object) ['result' => (bool) $match, 'formatedAddress' => (string) $googleMaps->formatted_address]; (为了清晰起见,目前没有
return (object) ['result' => (bool) $match, 'formatedAddress' => (string) $googleMaps->formatted_address];
(为了清晰起见,目前没有实际的类型转换代码。)
这在控制器中工作得很好,因为我可以在方法中重用变量,但在将其移动到AppServiceProvider
后就不太好了
问题:
有没有办法在验证时设置一个公共参数,以便我可以访问格式化的地址?还是我必须用另一种方式去做
使用PHP5.6和LARAVEL5.4.我实际上找到了答案,同时又做了一些修改。我在条件中犯了一个错误,所以它甚至没有达到我设置变量的点。 基本上,这就是解决方案:
Validator::extend('location', function (
$attribute, $value, $parameters, $validator
) {
$validator->location = true;
}
希望我的小错误和疏忽能帮助其他人避免陷入同样的困境