?一 多态方
//账户变动日志 , 支付日志同理
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');
}
年纪大了,仅做日后参考,看不明白的勿喷,这里可用一对多不用多态,哪里有错误或有更好的解决办法? 欢迎指出
|