Laravel uniquewith-validator包可空功能无法工作

时间:2018-01-18 21:30:10

标签: laravel unique

我使用uniquewith-validator包,我设法不允许这三种组合:name,last_name和telephone。问题是我想输入相同的名称和last_name但没有电话。当电话为空或无效时,它表示它是重复的,但如果我更换电话,则允许它应该。我需要允许,但在此代码中它不会:

'name' => 'required|unique_with:add_members, last_name, telephone'

当我使一列唯一时,我使用可空函数但在这里它不起作用......

当我使一列唯一时,我使用nullable,这是有效的:

's_number' => 'nullable|unique:add_members'

如何让电话可以为空并且不算重复?

这是我在AddMemberRequest.php中的完整代码

public function rules()
{
    return [
        'name'          => 'required|nullable|unique_with:add_members, last_name, telephone',
        'last_name'     => 'required',
        's_number'      => 'nullable|unique:add_members',
        'street'        => 'nullable|unique_with:add_members, name, last_name, number',
    ];
}

1 个答案:

答案 0 :(得分:0)

当我更改属性时,我成功了。当我设置为需要时,我已经使用了name属性,而不是将name和last_name组合成电话属性,并且可以为空。像这样:

'telephone_1'   => 'nullable|unique_with:add_members, name, last_name',

完整规则功能现在是:

public function rules()
{
    return [
        'name' => 'required',
        'last_name' => 'required',
        's_number' => 'nullable|unique:add_members',
        'telephone_1' => 'nullable|unique_with:add_members, name, last_name',
        'street' => 'nullable|unique_with:add_members, name, last_name, number',
    ];
}

我希望有人能为这个解决方案提供帮助。