首页 > 解决方案 > 如何使用指示性添加唯一规则?

问题描述

我在我的项目中使用 Indicative 来验证我的控制器,但是,Indicative 在“验证规则”中没有“唯一”规则,但框架 Adonis 有一个称为“唯一”的规则,它完全符合我的需要。

我的项目是用 Adonis 制作的,但我更喜欢在 Adonis 中使用“指示性”而不是“验证器”,因为我认为直接在 Controller 中编写代码更简单美观

  code: 'required|string|max:255',
  description: 'required|string|max:255|unique:tabela',
  authors: 'string|max:255',
  status: 'boolean',
  user_id: 'integer',
  created_at: [
    importValidate.validations.dateFormat(['YYYY-MM-DD HH:mm:ss'])
  ],
  updated_at: [
    importValidate.validations.dateFormat(['YYYY-MM-DD HH:mm:ss'])
  ]
}

在上面的示例中,我需要“代码”为“唯一”并返回错误消息和响应状态。我怎样才能做到这一点?

标签: node.jsvalidationadonis.js

解决方案


unique方法Validator会自动在数据库中搜索。我认为不可能做到这一点Indicative

我提出了这个解决方案(在你的控制器中):

const { validate } = use('Validator')

...

const rules = {
    code: 'unique:<table_name>,<field_name>'
}

const messages = {
    'code.unique': '...'
}

const validation = await validate({ code: ... }, rules, messages)

if (validation.fails()) {
    ...
}

要使用此命令,必须使用Validator. 我不认为有一个等价物Indicative


推荐阅读