/**
  * merge default configs with publish configs
  */
 protected function mergeDefaultConfig()
 {
     $config = $this->app['config']->get('laravel-user-module', []);
     $default = (require __DIR__ . '/../config/default.php');
     // admin page category routes
     $route = $config['routes']['admin']['role'];
     $default['routes']['admin']['role'] = $route;
     // admin page routes
     $route = $config['routes']['admin']['user'];
     $default['routes']['admin']['user'] = $route;
     $default['routes']['admin']['user_changePassword'] = $route;
     $default['routes']['admin']['user_permission'] = $route;
     // api page category routes
     $route = $config['routes']['api']['role'];
     $default['routes']['api']['role'] = $route;
     $default['routes']['api']['role_models'] = $route;
     $default['routes']['api']['role_group'] = $route;
     $default['routes']['api']['role_detail'] = $route;
     $default['routes']['api']['role_fastEdit'] = $route;
     // api page routes
     $model = $config['routes']['api']['user'];
     $default['routes']['api']['user'] = $model;
     $default['routes']['api']['user_group'] = $model;
     $default['routes']['api']['user_detail'] = $model;
     $default['routes']['api']['user_fastEdit'] = $model;
     $default['routes']['api']['user_activate'] = $model;
     $default['routes']['api']['user_notActivate'] = $model;
     $default['routes']['api']['user_avatarPhoto'] = $model;
     $default['routes']['api']['user_destroyAvatar'] = $model;
     $config['routes'] = $default['routes'];
     $config['user']['uploads']['photo'] = [];
     $default['user']['uploads']['photo']['path'] = unsetReturn($config['user']['uploads'], 'path');
     $default['user']['uploads']['photo']['max_size'] = unsetReturn($config['user']['uploads'], 'max_size');
     $default['user']['uploads']['photo']['aspect_ratio'] = unsetReturn($config['user']['uploads'], 'aspect_ratio');
     $default['user']['uploads']['photo']['mimes'] = unsetReturn($config['user']['uploads'], 'mimes');
     $default['user']['uploads']['photo']['thumbnails'] = unsetReturn($config['user']['uploads'], 'thumbnails');
     $config['user']['uploads']['photo'] = $default['user']['uploads']['photo'];
     $this->app['config']->set('laravel-user-module', $config);
 }
 /**
  * set the relations
  *
  * @param $request
  * @return void
  */
 protected function setRelation($request)
 {
     $this->changeRelationModel();
     $relation = [];
     if ($request->has('group-thumbnail')) {
         $this->relations['thumbnails']['datas'] = collect($request->get('group-thumbnail'))->reject(function ($item) {
             return !$item['thumbnail_slug'] || !$item['thumbnail_width'] || !$item['thumbnail_height'];
         })->map(function ($item, $key) {
             $item['slug'] = $item['thumbnail_slug'];
             unsetReturn($item, 'thumbnail_slug');
             $item['photo_width'] = $item['thumbnail_width'];
             unsetReturn($item, 'thumbnail_width');
             $item['photo_height'] = $item['thumbnail_height'];
             unsetReturn($item, 'thumbnail_height');
             return $item;
         });
         if ($this->relations['thumbnails']['datas']->count() > 0) {
             $relation[] = $this->relations['thumbnails'];
         }
     }
     if ($request->has('group-extra')) {
         $this->relations['extras']['datas'] = collect($request->get('group-extra'))->reject(function ($item) {
             return !$item['extra_name'] || !$item['extra_type'];
         })->map(function ($item, $key) {
             $item['name'] = $item['extra_name'];
             unsetReturn($item, 'extra_name');
             $item['type'] = $item['extra_type'];
             unsetReturn($item, 'extra_type');
             return $item;
         });
         if ($this->relations['extras']['datas']->count() > 0) {
             $relation[] = $this->relations['extras'];
         }
     }
     $this->setOperationRelation($relation);
 }