app\Role::givePermissionTo PHP Method

givePermissionTo() public method

Grant the given permission to a role.
public givePermissionTo ( Permission $permission ) : mixed
$permission Permission
return mixed
    public function givePermissionTo(Permission $permission)
    {
        return $this->permissions()->save($permission);
    }

Usage Example

 public function grantInheritanceTo(\App\Role $successor, \Illuminate\Database\Eloquent\Collection $predecessors)
 {
     $predecessors->each(function ($predecessor) use($successor) {
         $permissions = $predecessor->permissions()->get();
         if (empty($permissions)) {
             dump('Tried to grant [' . $successor->name . '] The permissions equal to those of [' . $predecessor->name . '] but the latter seems to have none granted.');
         } else {
             foreach ($predecessor->permissions()->get() as $permission) {
                 if ($permission instanceof \App\Permission) {
                     dump('[' . $successor->name . '] Inherited [' . $permission->name . '] Thru [' . $predecessor->name . ']');
                     $successor->givePermissionTo($permission);
                 } else {
                     $permission = \App\Permission::where(['name' => $permission])->first();
                     dump('[' . $successor->name . '] Inherited [' . $permission->name . '] Thru [' . $predecessor->name . ']');
                     $successor->givePermissionTo($permission);
                 }
             }
         }
     });
 }