Laravel-使用不同的id进行唯一验证


Laravel - using different id for unique validation

我使用itemId而不是id,并且当我验证为时

'barcode'        => 'required|unique:item,barcode,' .$this->get('itemId'),

我得到

SQLSTATE[42S22]:未找到列:1054"where子句"中的未知列"id"(SQL:从item中选择count(*)作为聚合,其中barcode=5391510260790,id<>10)

如何告诉Laravel在authorize()函数的请求类中的唯一验证中使用itemId而不是id

您可以使用规则的第四个参数指定要检查的列:

'barcode' => 'required|unique:item,barcode,'.$this->get('itemId').',itemId',

如果您看到它所说的文档,您必须按照以下结构来判断哪一个是id列。

unique:table,column,except,idColumn

您必须将idColumn替换为您的id列的名称。所以最后的代码是这样的:

'barcode' => 'required|unique:item,barcode,' .$this->get('itemId').',itemId',