0

これは、具体的すぎる可能性があるため、stackoverflow の適切な質問ではない可能性があります。

しかし、サイトにサービスを提供するLaravelを1つインストールする方法を誰かが知っているかどうか疑問に思っていました。しかし、URL によっては、さまざまなデータベースにアクセスできます。

つまり...

www.mainsite.com/company1/login - データベース1

www.mainsite.com/company1/users - データベース1

..

www.mainsite.com/company2/login - データベース2

www.mainsite.com/company2/users - データベース2

したがって、上記の場合、提供されているサイトはまったく同じサイトです。もちろん、各パーツにはログインがあり、異なるデータベースにアクセスします。

私はlaravelを複数インストールすることでこれを行うことができることを知っています.

しかし、変更をすべての異なるフォルダーにコピーするのではなく、1 つのバージョンだけを更新できるようにしたいのです。

次に、その 1 つのサイトを複数の異なるすべての企業に提供するだけです。彼らは自分のデータベースにのみアクセスできます

これは可能ですか??

4

2 に答える 2

0

私がこれに使用した手法の 1 つは、サインアップしてマスター データベースに保存する新しい顧客のデータベース名を生成することでした。データベースもこの時点で作成および移行されます。その後、ユーザーが毎回ログインすると、ソフトウェアはデータベース名を検索し、次を使用してオンザフライで構成を設定します。

Config::set(['database.connections.customerid']).

Laravel と Eloquent が提供するすべての優れた機能を引き続き利用でき、生のクエリに依存する必要はありません。これにより、大きな構成ファイルの管理からも解放されます。また、スキーマ名に一致するリソース ディレクトリを作成したので、他のユーザーとまったく同じスタックを実行しながら、ビュー ファイルとスタイルを備えたカスタム フロント フェース サイトを作成できました。

于 2017-06-16T05:43:36.320 に答える
0

構成で複数のデータベースを定義できます。

'default' => 'database1',
'connections' => array(
    'database1' => array(
        'driver'   => 'mysql',
        'host'     => 'localhost',
        'database' => 'database1',
        'username' => 'root',
        'password' => '',
        'charset'  => 'utf8',
        'prefix'   => '',
    ),

    'database2' => array(
        'driver'   => 'mysql',
        'host'     => 'localhost',
        'database' => 'database2',
        'username' => 'root',
        'password' => '',
        'charset'  => 'utf8',
        'prefix'   => '',
    ),

), 

次に、fluent を使用してクエリを実行します。

$user = DB::connection('database2')->table('users')->where('id', '=', 1)->first();

おそらく、次のような環境を使用できます。

$environments = array(
  'company1' => array('http://server.com/company1*'),
  'company2' => array('http://server.com/company2*'),
);

次に、config にサブフォルダーを作成し、必要に応じて編集する db config のコピーを作成します。

于 2013-07-12T21:50:02.980 に答える