首页 > 解决方案 > 3个表之间的laravel关系 - 多对多

问题描述

我有 3 张桌子(型号)

Advertise :
    id
    title
    ...

Value:
    id
    title
    amount
    ....

Field:
    id
    name
    title
    ...

and my pivot tables is like:
    advertise_id
    value_id
    field_id

我怎样才能在我的模型中设置关系并做一个粗加工(请给我一个例子)?所有的关系都是多对多的

标签: phplaraveleloquentlaravel-8

解决方案


相应的3个模型类:

class Advertise extends Model
{
    public function fields()
    {
        return $this->belongsToMany(Field::class);
    }

    public function values()
    {
        return $this->belongsToMany(Value::class);
    }
}

class Field extends Model
{
    public function advertises()
    {
        return $this->belongsToMany(Advertise::class);
    }

    public function values()
    {
        return $this->belongsToMany(Value::class);
    }
}

class Value extends Model
{
    public function fields()
    {
        return $this->belongsToMany(Field::class);
    }

    public function advertises()
    {
        return $this->belongsToMany(Advertise::class);
    }
}

推荐阅读