public function setConfig(Application $app, DatabaseRequest $request)
 {
     $driver = $request->get('driver');
     $connections = $this->connections();
     $config = array_merge($connections[$driver], $request->get($driver));
     if (isset($config['default'])) {
         unset($config['default']);
     }
     $config = array_merge(Arr::dot($app['config']->get('database')), Arr::dot(['default' => $driver, 'connections' => [$driver => $config]]));
     $a = [];
     foreach ($config as $k => $v) {
         Arr::set($a, $k, $v);
     }
     $app['config']->set('database', $a);
     return $driver;
 }
 public function post(Application $app, DatabaseRequest $request, DatabaseManager $manager)
 {
     $driver = $manager->setConfig($app, ['host' => $request->get('host'), 'database' => $request->get('database'), 'username' => $request->get('username'), 'password' => $request->get('password')]);
     try {
         DB::connection($driver);
     } catch (\Exception $e) {
         return redirect(route('installer::database'))->withErrors(['exception' => $e->getMessage()])->withInput();
     }
     try {
         $manager->writeConfig($app, ['host' => $request->get('host'), 'database' => $request->get('database'), 'username' => $request->get('username'), 'password' => $request->get('password')]);
     } catch (\Exception $e) {
         return redirect(route('installer::database'))->withErrors(['exception' => $e->getMessage()])->withInput();
     }
     return redirect(route('installer::database_finish'));
 }