【问题标题】:Laravel uniquewith-validator package nullable function won't workLaravel uniquewith-validator 包可为空的功能不起作用
【发布时间】:2018-06-28 01:49:25
【问题描述】:

我正在使用 uniquewith-validator 包,我设法设置不允许这三种组合:姓名、姓氏和电话。问题是当我想输入相同的姓名和姓氏但没有电话时。当电话为空或为空时,它说它是重复的,但是如果我更换电话,它应该允许它。我需要允许,但在这段代码中它不允许:

'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',
    ];
}

【问题讨论】:

  • 你能发布你的完整规则数组吗?
  • 如果您的意思是请求文件中的完整代码,那么好的,我添加了 ;)
  • 您的数据库表上是否有唯一索引? $table->string('telephone')->unique()$table->unique('name', 'last_name', 'telephone') 之类的东西?
  • 不,我没有那样说。

标签: laravel unique


【解决方案1】:

我更改属性时成功了。我将 phone 属性添加为与 name 和 last_name 组合是唯一的,并且可以为空,而不是我在设置为 required 时已经使用的 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',
    ];
}

我希望有人对这个解决方案有所帮助。

【讨论】:

    猜你喜欢
    • 2014-11-20
    • 2021-09-24
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    相关资源
    最近更新 更多