Many to many relationships require a pivot table. This is a table that sits between your two tables that you are matching.
We can't just add a foreign key to one of the tables, because that would mean that item only belongs to a single other item.
For instance, we will have a
users table, a
roles table, and a
role_user (Eloquent naming states alphabetical, underscore delimited, singular) table.
To create that table:
php artisan make:migration create_user_roles_table --create=user_roles
In our case, we used
user_roles since it was easier to read.
Attaching / Detaching
When we want to add a relationship so that a user is attached to a role, we can do the following:
Alternatively, we can remove a role using: