首页 文章

Laravel验证具有不同类别的独特子语句

提问于
浏览
0

我想通过以下代码确定 laravel 中唯一的字段:

这是表 product_subcategories 的验证:

protected $rules = [
    ValidatorInterface::RULE_CREATE => [
        'name'                  => 'required|unique:product_subcategories|max:255',
        'product_categories_id' => 'required'
    ],
    ValidatorInterface::RULE_UPDATE => [
        'id'                    => 'required',
        'name'                  => 'required|unique:product_subcategories|max:255',
        'product_categories_id' => 'required'
    ]
];

但我希望字段名称与 product_categories_id 是唯一的,例如,如果字段的名称相同但 product_categories_id 彼此不同,则它不能是唯一的 . 我怎样才能做到这一点?

1 回答

  • 0

    您可以指定要与规则的第二个参数进行比较的列 .

    protected $rules = [
        ValidatorInterface::RULE_CREATE => [
            'name'                  => 'required|unique:product_subcategories,name|max:255',
            'product_categories_id' => 'required'
        ],
        ValidatorInterface::RULE_UPDATE => [
            'id'                    => 'required',
            'name'                  => 'required|unique:product_subcategories,name|max:255',
            'product_categories_id' => 'required'
        ]
    ]
    

    此示例将检查 product_subcategories 中是否存在具有相同 name 的任何其他字段 .

    对于更新,您可以使用第三个参数来扩展它,该参数是您要忽略的名称的值 . (因此,您可以保存SubCategory而不更改其名称 . )

相关问题