My Role Model
class Role extends Model
{
use SoftDeletes;
protected $fillable = [
'name', 'display_name', 'description',
];
protected $dates = ['deleted_at'];
public function users()
{
return $this->belongsToMany(User::class);
}
public function permissions()
{
return $this->belongsToMany(Permission::class);
}
RoleController
class RoleController extends Controller
{
public function index()
{
$roles = Role::all();
return view('roles.index', compact('roles'));
}
public function store(Request $request)
{
$role = Role::create([
'name' => $request->name,
'display_name' => ucwords($request->display_name),
'description' => $request->description,
]);
//return response()->json("New Student Added", 200);
Session::flash('success_message', "New Role Added");
return Redirect::back();
}
// Deleting a Role
// Handles Route::get('delete/{role}', 'RoleController@delete')->name('role.delete');
public function delete(Role $role){
$role->delete();
return response()->json("Role Deleted");
}
public function restore($id)
{
$role = Role::withTrashed()->where('id', $id)->first();
$role->restore();
Session::flash('success_message', "Role Restored");
return Redirect()->back();
}
User Model
class User extends Authenticatable
{
use Notifiable;
use SoftDeletes;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'firstname', 'lastname', 'username', 'email', 'password', 'role_id',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function student()
{
return $this->hasMany(Student::class)->latest();
}
public function permissions()
{
return $this->belongsToMany(Permission::class);
}
public function roles()
{
return $this->belongsToMany(Role::class);
}
UserController
class UserController extends Controller
{
public function index()
{
$users = User::withTrashed()->get();
return view('users.index', compact('users'));
}
public function store(Request $request)
{
$user = User::create
([
'firstname' => ucwords($request->firstname),
'lastname' => ucwords($request->lastname),
'username' => $request->username,
'email' => $request->username,
'password' => bcrypt($request->password),
]);
//return response()->json("New User Added", 200);
Session::flash('success_message', "New User Added");
return Redirect::back();
}
public function delete(User $user)
{
$user->delete();
return response()->json("User Deleted");
}
public function restore($id)
{
$user = User::withTrashed()->where('id', $id)->first();
$user->restore();
Session::flash('success_message', "User Restored");
return Redirect()->back();
}
}
and I don't know why on how to add the role in my user upon registering.