目前,我的数据库设置如下所示:
用户表(用户模型):
折扣表(优惠券模式)
现在,我决定创建一个支点表,在那里我将为用户存储一个折扣值。一个用户将有一个单一的折扣值。为此,我使用以下表设置创建了PractitionerVoucher模型:
创建优惠券记录后,我将coupon_id (本例中的voucher_id)和user_id (本例中的practitioner_id)值保存到PractitionerVoucher表中。现在,我的问题是,如何从优惠券模型中获取用户记录?例如:
$coupon = Coupon::first();
$coupon->practitioner;我试图在hasOneThrough模型上创建Coupon关系,但到目前为止还没有成功。这就是我试过的:
public function practitioner(){
return $this->hasOneThrough(User::class, PractitionerVoucher::class, 'practitioner_id', 'id');
}使用这种关系,我不会获得User模型的查询结果。我的数据库记录是这样的:
优惠券表

PractitionerVoucher表:

我在这里做错什么了?任何帮助都是非常感谢的。
发布于 2022-06-17 22:18:31
通过在用户表上添加一个coupon_id列,并在用户和优惠券模型之间定义一对多关系,可以很容易地完成您想要实现的任务--不需要枢轴表。
用户模型研究
public function discount()
{
return $this->belongsTo(Coupon::class, 'coupon_id');
}关于优惠券模型
public function users()
{
return $this->hasMany(User::class);
}然后你就可以利用这种关系
$coupon = Coupon::with('users')->first();
$coupon->users;https://stackoverflow.com/questions/72657287
复制相似问题