地址的Laravel验证规则

时间:2017-12-01 21:07:53

标签: php laravel validation

在我的项目表单中,我请求用户输入地址。有时单个表单可以有2个地址。地址总是3个字段(城市,街道和门牌号)。

要验证我使用的是返回gps坐标或错误的外部服务,在这种情况下,我会手动向验证程序添加错误。我甚至写了一个辅助函数,所以在我的控制器中它看起来像这样:

$this->validateAddress(
    $v,
    $request->input('firstaddr.city'),
    $request->input('firstaddr.street'),
    $request->input('firstaddr.house')
);
$this->validateAddress(
    $v,
    $request->input('secondaddr.city'),
    $request->input('secondaddr.street'),
    $request->input('secondaddr.house')
);

然而,这个解决方案似乎非常hacky和重复,我想要的只是将规则传递给验证器,它只会收到一个前缀,如“firstaddr”或“secondaddr”。有可能吗?

1 个答案:

答案 0 :(得分:4)

从Laravel 5.5开始,您可以定义custom validation rules

在您的控制器中,它看起来像

$request->validate([
    'firstaddr' => [new Address],
    'secondaddr => [new Address]
]);

您可以将其与form request validation结合使用,以便验证逻辑在执行进入控制器之前发生。