Video Course

Laravel Eloquent Relationships: Lesson 6 of 7

Many to Many

Up Next


Autoplaying in 7 seconds!


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:


Chris Sevilleja

157 posts

Co-founder of Slapping the keyboard until something good happens.