Задать вопрос
65536
@65536

Как добавлять/удалять связи много-ко-многим на Eloquent'e?

Есть 2 таблицы:

class User extends \Model
{
    public function roles()
    {
        return $this->belongsToMany('Role');
    }
}

class Role extends \Model
{
    public function users()
    {
        return $this->belongsToMany('User');
    }
}

и связующая таблица с полями user_id и role_id. При выборке все правильно работает. Не понимаю как добавлять связи.

При добавлении к пользователю роли, новая запись в связующей таблице создается только если эта роль еще не была добавлена другому пользователю. То есть, выходит, одна роль может принадлежать только одному пользователю. Может быть я связь как-то неправильно описал? Нужно чтобы любой пользователь мог быть связан с любой ролью, хоть все со всеми. Как это делается?
  • Вопрос задан
  • 2287 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Nc_Soft
Документацию не судьба почитать? У Laravel она отличная и компактная, с примерами.
Добавить к новому юзеру роли 1,2,3
$user->roles()->attach([1,2,3])
Изменить у юзера набор ролей на 4,8,9
$user->roles()->sync([4,8,9])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы