связь laravel между 3 таблицами — многие ко многим

#php #laravel #eloquent #laravel-8

Вопрос:

У меня есть 3 таблицы (модели)

 Advertise :
    id
    title
    ...

Value:
    id
    title
    amount
    ....

Field:
    id
    name
    title
    ...

and my pivot tables is like:
    advertise_id
    value_id
    field_id
 

как я могу установить отношения в своих моделях и сделать грубость(пожалуйста, приведите мне пример)?
все отношения-это много ко многим

Комментарии:

1. как я могу установить отношения в своих моделях и сделать грубость(пожалуйста, приведите мне пример) Прочитайте документы Laravel, они буквально там!

2. Что вы подразумеваете под всеми отношениями «много ко многим»? Означает ли это Advertise «много-ко-многим Field «, Advertise «много-ко-многим Value » и Field «много-ко-многим Value «?

Ответ №1:

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);
    }
}