Laravel一张表连接到另外两个由多对多的关系

问题描述 投票:1回答:1

我有一个关于一个关系的问题,该关系涉及一个表连接到具有多对多关系的另外两个表。我不知道我是否需要多态,或者我是否可以将表连接到另一个,就像在laravel文档中一样。我加入了下面的图片,向您展示我的意思。来自:From this

To this

这意味着一张优惠券可用于多种服务和/或购买东西。

假设凭证价值500美元的理发师。例如,他可以使用相同的凭证来理发(服务)并购买护发产品(销售)。我的“To”图像会起作用吗?不要介意表的命名等等。我刚刚为我的例子创建了它们。

谢谢阅读

mysql database laravel eloquent
1个回答
2
投票

你的“到”表将起作用。在这种情况下,客户可以使用相同的凭证来进行服务和/或销售。当您提取销售中使用的凭证时,这将获得linkingtable_salevoucher的关系,当您从服务中提取关系时,这将使用linkingtable_servicevoucher。如果您希望凭证只能用于服务或销售,则不能同时使用。在创建新关系之前,您可以检查是否具有其他关系。像这样:

//Before create a Sale with voucher, check if voucher has be used
$voucher = App\Voucher::where('serialNumberOfProduct', $serialVoucher)
             ->has('services')->get();
if($voucher->count() == 0){
    //create the new relationship
}

希望这可以帮助

© www.soinside.com 2019 - 2024. All rights reserved.