laravel 多对多多态记录

 一 多态方

//账户变动日志 , 支付日志同理 
class YdMemberAccountLog extends Model
{
    protected $table = "yd_member_account_log";
    const UPDATED_AT = null;
    const CREATED_AT = null;
    protected $fillable = ["member_id","log_type",'total_fee','create_time','remark'];
    public function member(){
        return $this->belongsTo(YdMember::class,'member_id');
    }
    //多对多多态
// 关联类名 -  前缀 -  中间表 - 外键 - 对方的外键
    public function records(){
        return $this->morphToMany(YdMemberTradingRecord::class,'log',          'yd_member_trading_record_ables','log_id','record_id');
    }

}

二 中间表 

    public function up()
    {
        Schema::create('yd_member_trading_record_ables', function (Blueprint $table) {
            $table->id();
            $table->integer('record_id');//记录
            $table->integer('log_id')->nullable(); //日志 多对多
            $table->string('log_type',50)->nullable();
     });
}

三 记录: 可能有多条支付日志 也可能有多条账户变动日志  

//多对多多态
public function AccountLogs(){ //账户日志
    //参数说明: 关联的类名 ,前缀(比如log_id,log_type 这里就是 log),table,foreignPivotKey
    return $this->morphedByMany(YdMemberAccountLog::class,'log','yd_member_trading_record_ables','record_id');
}
public function PayLogs(){ //微信支付日志
    return $this->morphedByMany(PayLog::class,'log','yd_member_trading_record_ables','record_id');
}

年纪大了,仅做日后参考,看不明白的勿喷,这里可用一对多不用多态,哪里有错误或有更好的解决办法  欢迎指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yjp20160908

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值