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

标签 mysql laravel eloquent payment-method

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

现在如何从付款表中获取具有付款模式的所有付款(来自信用卡或 PayPal 表的详细信息)?

最佳答案

您必须对 Payment 实体和其他实体(CreditCardPayment、WireTransfer)进行多态关系。

添加付款迁移以添加这些列:

  • payment_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');
}

注意:“付款”方法中的“付款”是您的付款实体类。

关于mysql - Laravel Eloquent 选择查询所使用的付款方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50783486/

相关文章:

php - laravel如何执行多个后台进程?

laravel Eloquent 查询WhereHas 错误结果

mysql - 使用 unix 时间戳从 mysql 数据库获取最近 30 分钟的记录

php - 通过 PHP 从 MySQL 获取 UTF-8 字符串返回 "????????"

php - 如何删除 Laravel 中不在 storage/app 下的文件夹(及其内容)?

php - 使用 Laravel 读取文件内容

PHP mysql相册允许一张照片在多个相册中(数据库结构)

mysql - 无法重新启动mysql

mysql - 如何在 Laravel 中使用子查询计算产品图片数量

php - array_key_exists() 错误/编辑供应商文件