有没有办法将假类没有数据库表/模型用于多态关系?

问题描述

我有一个 transactions 表,其中的事务类型可以演变为 TopUpTransactionDeductTransaction 等,这些类型保存了它们的特定信息(因为它们具有不同的字段)。

现在我有一个交易类型 SecurityDeposit,它不需要专用模型,因为它不需要任何额外信息。

我可以通过拥有一个仅保留 id 字段的模型和数据库表使其与默认变形一起工作,但这是没有意义的。

有没有办法绕过创建一个空的模型和数据库表?

class Transaction extends Model {

    public function transactionable(): MorphTo
    {
        return $this->morphTo();
    }

    public function text() 
    {
        return $this->transactionable->text()
    }

    public function class() 
    {
        return $this->transactionable->class()
    }
}
class TopUpTransaction extends Model {

    public function text() {
        return "Top Up"
    }

    public function class() {
        return "text-success"
    }
}

class DeductTransaction extends Model {
 // has text() and class() methods 
}

但是,我不想在数据库中创建 SecurityDepositTransaction,因为它不需要任何附加信息

class SecurityDepositTransaction { 
    
    public function text() {
        return "Security Deposit"
    }

    public function class() {
        return "text-danger"
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)