Задать вопрос
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. При выборке все правильно работает. Не понимаю как добавлять связи.

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

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

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