编程语言
首页 > 编程语言> > PHP-Laravel 5.2条件验证

PHP-Laravel 5.2条件验证

作者:互联网

我最初在注册表单中具有first_name,last_name,password,email作为字段.我需要添加一个注册为企业的选项.

我最初的验证规则:

protected function validator(array $data)
{
    return Validator::make($data, [
        'first_name' => 'required|max:255',
        'last_name' => 'required|max:255',
        'email' => 'required|email|max:255|unique:users',
        'password' => 'required|min:6|confirmed',
    ]);
}

我需要添加一个business_name字段.我需要验证为:

first_name和last_name是必需的,xor business_name是必需的.

我如何在Laravel 5.2中做到这一点?我正在查看有时的规则-但是我不确定是否应该这样做.

编辑:

我想几乎可以通过以下方式完成:

protected function validator(array $data)
{
    return Validator::make($data, [
        'first_name' => 'sometimes|max:255',
        'last_name' => 'sometimes|max:255',
        'business_name'=>'sometimes|max:255',
        'email' => 'required|email|max:255|unique:users',
        'password' => 'required|min:6|confirmed',
    ]);
}

虽然从我对有时规则的理解来看,它只会验证键是否存在于输入数组中,因此first_name可能存在,而last_name可能不存在,仍会验证为“ pass”.这不是我想要的行为.

解决方法:

您可能正在寻找的是required_without:foo,bar,…

该验证规则说:“仅当不存在任何其他指定字段时,验证字段才必须存在且不为空”.

因此,您可能会有business_name => required_without:名字,姓氏

标签:laravel,validation,laravel-5-2,php
来源: https://codeday.me/bug/20191118/2026889.html