Laravel一个表通过多对多关系连接到另外两个

时间:2019-04-13 12:11:21

标签: mysql database laravel eloquent

我对一个关系存在疑问,该关系涉及一个表以多对多关系连接到另外两个表。我不知道我是否需要多态性,或者是否可以像laravel文档中那样将表与其他表连接起来。我加入了下面的图片,向您展示我的确切意思。 从: From this

To this

这意味着一张代金券可以用于多种服务和/或购买物品。

假设这张优惠券价值500美元的美发师。例如,他可以理发(服务)并用一张相同的凭单购买护发产品(销售)。我的“致”图像能起作用吗?不要介意表等的命名。我只是为示例创建它们。

感谢阅读

1 个答案:

答案 0 :(得分:2)

您的“至”表将起作用。 在这种情况下,客户可以对服务和/或使用相同的凭单。当您提取销售中使用的凭证时,这将从linkingtable_salevoucher中获取关系,而当您从服务中获取关系时,将使用linkingtable_servicevoucher。 如果您想仅在 OR 服务中使用优惠券,则不能同时使用。在创建新关系之前,可以检查是否具有其他关系。 像这样:

//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
}

希望这会有所帮助