$user->roles()->attach($roleIds);
$user->roles()->detach($roleIds);
$user->roles()->sync($roleIds);
$user->roles()->toggle($roleIds);
class Post extends Model
{
// 1 Post has many comments
public function comments()
{
return $this->hasMany(Comment::class);
}
}
use AppModelsUser;
$user = User::find(1);
$user->roles()->attach($roleId);
// in User model:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class User extends Model
{
/**
* The roles that belong to the user.
*/
public function roles()
{
return $this->belongsToMany('AppRole');
}
}
// in Role model:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Role extends Model
{
/**
* The users that belong to the role.
*/
public function users()
{
return $this->belongsToMany('AppUser')->using('AppUserRole');
}
}
/*
users
id - integer
name - string
roles
id - integer
name - string
role_user
user_id - integer
role_id - integer
*/
class User extends Model
{
/**
* The roles that belong to the user.
*/
public function roles()
{
/*To determine the table name of the relationship's intermediate
table, Eloquent will join the two related model names in
alphabetical order. However, you are free to override this
convention. You may do so by passing a second argument to the
belongsToMany method*/
return $this->belongsToMany(Role::class,'role_user');
}
}
//Defining The Inverse Of The Relationship
class Role extends Model
{
/**
* The users that belong to the role.
*/
public function users()
{
return $this->belongsToMany(User::class);
}
}
<?php namespace App; use IlluminateDatabaseEloquentModel; class UserRole extends Model{ }