Laravel 5.7 にて connection を指定したクエリビルダのやり方
やりたいこと
Laravelにてconnectionを指定したクエリビルダを使いたい
例
この方法ではクエリビルダが生成されますが、
connectionは初期状態になります。
$builder = \DB::table('table'); // Illuminate\Database\Query\Builder
$builder->distinct();
以下のように、postgresのコネクションを作成した場合、
クエリビルダではなくコネクションとして生成されます。
$builder = \DB::connection('postgresql'); // Illuminate\Database\PostgresConnection
$builder->table('table');
$builder->distinct(); // Error
もちろんクエリビルダではないので、
->distinct()
するとエラーになります。
Symfony\Component\Debug\Exception\FatalThrowableError : Call to undefined method Illuminate\Database\PostgresConnection::distinct()
クエリビルダを生成して、あとからコネクションを設定するか、
コネクションを指定したクエリビルダを生成する方法はないでしょうか。