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')); }