Laravel Validate, если уже есть запись с похожей комбинацией из двух столбцов - PullRequest
0 голосов
/ 27 августа 2018

Например, у меня есть аукцион, на котором пользователи могут делать ставки на товары.

Когда пользователь создает новую ставку, я хочу быть уверен, что этот пользователь ранее не делал ставку на этот товар.

Структура таблицы 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

Ответы [ 3 ]

0 голосов
/ 27 августа 2018

Создание модели для таблицы «Пользователи».

Теперь

 $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
      }
 }
0 голосов
/ 27 августа 2018

Согласно Документам Laravel :

[
    'item_id' => 'unique:bids,item_id,null,id,user_id,' . auth()->id(),
]
0 голосов
/ 27 августа 2018

Вы можете использовать уникальную проверку laravel как

'user_id' => 'unique:item_id,user_id,NULL,id,'.$user->id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...