laravel之Eloquent之Relation 枢纽表关联关系hasManyThrough

使用laravel的eloquent写两个表的关联关系是日常操作,hasOne,hasMany,belongsTo

会遇到有枢纽表(中间表)来做多对多关系用的,hasManyThrough这个方法几个参数比较难记下来

现有三个模型User、City、UserCity,对应表users、cities、user_cities

通过UserCity枢纽表关联User和City关系

现在在User表中写上City的关联关系

class User extends Model
{
    public function cities(): Relation
    {
        $this->hasManyThrough(
            // 参数1 目标表类名
            City::class,
            // 参数2 枢纽表类名
            UserCity::class,
            // 参数3 枢纽表中和当前表关联的字段名
            'user_id',
            // 参数4 枢纽表中和目标表关联的字段名
            'city_id',
            // 参数5 当前表中和枢纽表关联的字段名,一般是主键
            'id',
            // 参数6 目标表中和枢纽表关联的字段名,一般是主键
            'id');
    }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注