コード例 #1
0
ファイル: TestCase.php プロジェクト: ihatehandles/AbuseIO
 public function tearDown()
 {
     $this->beforeApplicationDestroyed(function () {
         DB::disconnect();
     });
     parent::tearDown();
 }
コード例 #2
0
 /**
  * Sets the connection's database to the current user database
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     // Get the current authenticated user
     $user = Auth::user();
     // Close any connection made before to avoid conflicts
     DB::disconnect('tenantdb');
     // Set the connection's database to the user's own database
     Config::set('database.connections.tenantdb.database', storage_path() . '/' . $user->database);
     return $next($request);
 }
コード例 #3
0
 /**
  * Create a new user instance after a valid registration.
  *
  * @param  array  $data
  * @return User
  */
 public function create(array $data)
 {
     $user = User::create(['name' => $data['name'], 'email' => $data['email'], 'database' => $data['name'] . '.sqlite', 'password' => bcrypt($data['password'])]);
     // Create the new user sqlite database
     Storage::put($user->database, '');
     // Close any connection made with tenantdb
     DB::disconnect('tenantdb');
     // Set the tenant connection to the users own database
     Config::set('database.connections.tenantdb.database', storage_path() . '/' . $user->database);
     // Run migrations for the new db
     Artisan::call('migrate', ['--database' => 'tenantdb', '--path' => 'database/migrations/tenant']);
     return $user;
 }
コード例 #4
0
 /**
  * Obtiene las obras de un usuario cadeco de todas las bases de datos definidas
  *
  * @param $idUsuario
  * @return Collection|Obra
  */
 public function getObras($idUsuario)
 {
     $obrasUsuario = new Collection();
     $basesDatos = BaseDatosCadeco::where('activa', true)->orderBy('nombre')->get();
     foreach ($basesDatos as $bd) {
         $this->config->set('database.connections.cadeco.database', $bd->nombre);
         $usuarioCadeco = $this->getUsuarioCadeco($idUsuario);
         $obras = $this->getObrasUsuario($usuarioCadeco);
         foreach ($obras as $obra) {
             $obra->databaseName = $bd->nombre;
             $obrasUsuario->push($obra);
         }
         DB::disconnect('cadeco');
     }
     $perPage = 10;
     $currentPage = Paginator::resolveCurrentPage();
     $currentPage = $currentPage ? $currentPage : 1;
     $offset = $currentPage * $perPage - $perPage;
     $paginator = new LengthAwarePaginator($obrasUsuario->slice($offset, $perPage), $obrasUsuario->count(), $perPage);
     return $paginator;
 }
コード例 #5
0
ファイル: External.php プロジェクト: enotsokolov/vp_plus
 public function disconnect($site_id)
 {
     DB::disconnect($site_id . '_production');
 }