【问题标题】:Laravel Eloquent select query for payment method usedLaravel Eloquent 选择查询使用的付款方式
【发布时间】:2018-11-19 20:43:06
【问题描述】:

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

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

【问题讨论】:

  • 使用关系或数据库类。请自己尝试,如果不行,请分享。

标签: mysql laravel eloquent payment-method


【解决方案1】:

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

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

  • paymentable_type(字符串)
  • paymentable_id(整数)

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

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 实体类。

【讨论】:

猜你喜欢
  • 2018-06-06
  • 2015-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 2021-01-27
  • 2018-12-26
  • 2021-04-08
相关资源
最近更新 更多