Laravel Eloquent select 查询使用的支付方式
Laravel Eloquent select query for payment method used
我在 mysql 支付、CreditCardPayment、WireTransfer 中设计了 3 个 table。 Payment table 的列 payment_mode 存储所使用的付款方式(信用卡或 paypal)。在 CreditCardPayment & WireTransfer 中,我存储了来自付款 table.
的付款 ID
现在如何使用付款方式(来自信用卡或 paypal table 的详细信息)从付款 table 中获取所有付款?
您必须对支付实体和其他实体(CreditCardPayment、WireTransfer)建立多态关系。
添加付款迁移以添加这些列:
- 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" 是您的付款实体 class。
我在 mysql 支付、CreditCardPayment、WireTransfer 中设计了 3 个 table。 Payment table 的列 payment_mode 存储所使用的付款方式(信用卡或 paypal)。在 CreditCardPayment & WireTransfer 中,我存储了来自付款 table.
的付款 ID现在如何使用付款方式(来自信用卡或 paypal table 的详细信息)从付款 table 中获取所有付款?
您必须对支付实体和其他实体(CreditCardPayment、WireTransfer)建立多态关系。
添加付款迁移以添加这些列:
- 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" 是您的付款实体 class。