Laravel は非常に柔軟で高度な設定が可能で、そのようなことを行うのにまったく問題はないはずです。たとえば、データベースに関しては、2 つの接続を作成できmain
ます。メイン データベース テーブルへの固定接続でありproject
、現在のプロジェクト テーブルの場合は、次のようになります。
'main' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
],
'project' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
],
そして、次のことができるはずです。
モデル接続を構成します。
<?php
namespace App;
class Posts extends Model
{
protected $connection = 'project';
}
接続を直接照会します。
DB::connection('project')->table('users')->where('activated', true)->get();
実行時にデータベースを構成します。
config([
'database.connections.project.database' => 'project1db',
'database.connections.project.user' => $user,
'database.connections.project.password' => $password,
]);
ビューに関しては、次のようにするだけで、必要な場所でビューを見つけるように Laravel に指示できます。
View::addLocation('/path/to/project1/');