Laravel验证是否已经有两列相似组合的记录

时间:2018-08-27 05:39:16

标签: php laravel-5

例如,我有一个拍卖,用户可以在其中竞标物品。

当用户创建新出价时,我想确保该用户之前没有对该商品出价。

BID表结构为iditem_iduser_idprice。因此,基本上我需要检查是否有一条记录同时具有相同的item_id和相同的user_id

使用Laravels Validator有什么方法吗?

$validator = Validator::make($request->all(), [
            'item_id'  => 'unique:item_id,user_id,NULL,id,'. auth()->user()->id,
            'price'    => 'required|integer'
        ]);

我遇到的错误:

  

未定义偏移:1

3 个答案:

答案 0 :(得分:1)

为“用户”表创建模型。

现在

 $itemIds= User:: where ('user_id',$userId)->pluck('item_Id');
 foreach($itemIds as $itemId){
      if ($itemId == $newItemId) {
            // write code if item id is already present
      } 
      else {
            // write code if item id is not present
      }
 }

答案 1 :(得分:1)

根据Laravel docs

[
    'item_id' => 'unique:bids,item_id,null,id,user_id,' . auth()->id(),
]

答案 2 :(得分:0)

您可以将laravel唯一验证用作

'user_id' => 'unique:item_id,user_id,NULL,id,'.$user->id