2016-12-04 7 views
0

Laravel Config::set Persist Through Requests?Laravelダイナミックデータベースの

以下の回答を得た後、私はそれを試してみた...しかし

'default' => 'mysql_main', 
    'connections' => [ 
     'mysql_main' => [ 
      'driver' => 'mysql', 
      'host' => env('DB_HOST', 'localhost'), 
      'port' => env('DB_PORT', '3306'), 
      'database' => env('DB_DATABASE', 'forge'), 
      'username' => env('DB_USERNAME', 'forge'), 
      'password' => env('DB_PASSWORD', ''), 
      'charset' => 'utf8', 
      'collation' => 'utf8_unicode_ci', 
      'prefix' => '', 
      'strict' => false, 
      'engine' => null, 
     ], 
     'mysql_company' => [ 
      'driver' => 'mysql', 
      'host' => env('DB_HOST', 'localhost'), 
      'port' => env('DB_PORT', '3306'), 
      'database' => Auth::user()->club->db_name, 
      'username' => 'root', 
      'password' => '', 
      'charset' => 'utf8', 
      'collation' => 'utf8_unicode_ci', 
      'prefix' => '', 
      'strict' => false, 
      'engine' => null, 
     ], 

    ], 

、configの下にdatabase.phpでフォルダ内にこれを行うときに、私は次のエラーを受け取ります...

Fatal error: Class 'Auth' not found in F:\trapstats_v5\config\database.php on line 73.

のthro節約するユーザーに基づいて動的なデータベース接続を行うための別の方法は、あります私は動的接続にアクセスするたびにconfig([database.connections.mysql_company.database' => Auth::user()->club->db_name])の代わりにリクエストを送信しますか?

この質問は、Dynamic database connection in Laravelの回答に似ています。私がこの答えを同様に行うと、Authの代わりにSessionと呼ばれるこの時間以外は同じ種類のエラーが発生します。

'database' => Auth::user()->club->db_name, 

をやって、あなたの設定ファイルで

答えて

0

は、認証は、おそらくあなたの設定ファイルがLaravelにより読み取られる時点で設定されていないので、それは他のものの多くにあなたの設定ファイルを必要とするので、それは読んでください危険です彼らは拳。あなたは何ができるか、に、のServiceProvider、または他のいくつかのヘルパークラスを言うことができますすることです:いくつかのより多くの読書をしているし、周りに行くと、私は解決策が出ている多くの質問をした後

config('database.connections.mysql_company', ['database' => Auth::user()->club->db_name]); 
0

私がやったのは、他のミドルウェアが完成した後に実行されるデータベースと呼ばれるミドルウェアを作成することでした。これにより、典型的なLaravelサービス(Auth :: user()など)のすべてを使用できます。

class Database { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if (!Auth::guest()) { config(['database.connections.club.database' => Auth::user()->club->db_name]); } return $next($request); } } とデータベースは、ルートグループのために、私はそれには、このミドルウェアを割り当てます。

関連する問題