如何基于主表上的列来验证主表和外部表上的唯一字段

时间:2019-02-04 16:50:42

标签: laravel laravel-5.7

我遇到以下问题:我的产品表中有一个cod列。该产品表与变量具有一对多关系,一个产品可以具有多个变量。变异表中还有一个cod列。

  product     variation2      here product has two variations      
   cod 12       cod 13
   id 1         product_id 1
   user_id 100

         variation1
         cod 14
          product_id 1

如果用户已经插入具有特定代码的产品或变体,则无法插入产品。

我需要使用laravel进行验证。我真的不想用雄辩的话。我可以使用Laravel验证。

我能得到的最远的是:

  "cod" => 'unique:product|unique:variation'

但是我如何基于user_id在产品表上进行验证?

1 个答案:

答案 0 :(得分:0)

对于这种验证,只需对表product variation1variation2(带有'cod'上的联接)进行选择,如果您不会得到任何行,则可以保存模型(仍在交易内部)。由于这种情况仅封装给一个用户(我假设他可以同时在一台计算机上工作),因此您不需要使用transactionoptymistic/pesymistic locking