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

时间:2016-01-10 20:35:16

标签: php laravel laravel-5 laravel-validation

我使用itemId代替id,当我验证为

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

我得到了

  

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

如果你看到它说的文档,你必须按照下面的结构来分辨哪个是id列。

unique:table,column,except,idColumn

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

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