Модели Laravel заполняют дополнительное поле внутри таблицы «многие ко многим»

Я новичок в Laravel Framework и пытаюсь работать со мной.
Я уже понимаю, как генерировать отношения N: M и обрабатывать их внутри моделей. Теперь я спрашиваю вас, как заполнить дополнительное поле внутри множества таблиц?

Например:

  • Стол Фу

  • Таблица User_Foo

    • Идентификатор пользователя
    • foo_id
    • is_owner (bool)
  • Пользователь таблицы

Теперь я хочу объявить, кто из пользователей foo является настоящим владельцем.
На мой взгляд, таблица N: M хранит эту информацию, а не сам Foo.
Так как же можно объявить эти дополнительные поля внутри моей модели Foo и User?

0

Решение

Получить дополнительные поля вы можете с помощью метода withPivot ()

return $this->belongsToMany('App\User')->withPivot('is_owner');

Заполнить можно с помощью методов sync () или attach ().

Laravel Doc Отношения

0

Другие решения

Laravel дает нам концепцию pivotпри определении N-M отношений. По умолчанию таблица будет иметь оба подключенных ключа. Но если вы хотите добавить дополнительные поля в эту таблицу мостов.

$model->belongsToMany('Model')->withPivot('column1', 'column2');

В приведенном выше случае ваша сводная таблица будет иметь два дополнительных столбца, и вы можете получить доступ к этим столбцам как:

$model->pivot->column1
$model->pivot->column2
0

По вопросам рекламы [email protected]