例如,我有一个拍卖,用户可以在其中竞标物品。
当用户创建新出价时,我想确保该用户之前没有对该商品出价。
BID
表结构为id
,item_id
,user_id
,price
。因此,基本上我需要检查是否有一条记录同时具有相同的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
答案 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