Laravel Eloquent 选择查询使用的付款方式

苏拉吉拉纳

我在 mysql Payments、CreditCardPayment、WireTransfer 中设计了 3 个表。付款表有列 payment_mode 存储使用的付款方式(信用卡或贝宝)。在 CreditCardPayment & WireTransfer 中,我正在存储付款表中的付款 ID。

现在如何使用付款方式(信用卡或贝宝表的详细信息)从付款表中获取所有付款?

梅苏蒂

您必须与 Payment 实体和其他实体(CreditCardPayment、WireTransfer)建立多态关系。

为 Payment 添加迁移以添加这些列:

  • payable_type(字符串)
  • payable_id(整数)

在 Payment.php (entity) 你应该添加这个函数:

public function paymentable() {
    return $this->morphTo();
}

在 CreditCardPayment.php 你应该添加这个函数:

public function payments(){
    return $this->morphMany(Payment::class, 'paymentable');
}

在 WireTransfer.php 你应该添加这个函数:

public function payments(){
    return $this->morphMany(Payment::class, 'paymentable');
}

注意:“payments”方法中的“Payment”是您的 Payment 实体类。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章