2016-12-15 5 views
1

私たちはlaravelのモデルメソッドに異なるmysql接続を指定できますか?

protected $connection = 'my_db';

を設定することにより、特定のモデルのためのMySQLの接続を指定することができます。しかし、モデルが特定の方法に使用しているものとは異なる接続を指定する方法があります知っています。

たとえば、私のモデルでデフォルト接続としてmy_dbが使用されていますが、モデルメソッドfoo()に別の接続my_db1を使用したいとします。どうすればいいのですか?

return $this->connection('foo')->where('id', 1)->get(); 

答えて

3

雄弁は、ボンネットの下にクエリビルダを使用しています。ドキュメントの

ルックはhttps://laravel.com/docs/5.3/database

+0

私の接続名は、私が.env'ファイル 'で定義された' my_db1'です。私のモデルメソッドは 'public function foo(){}'のようなものです。 'foo()'がdiff接続にアクセスするようにしたい。 –

+0

アプリケーションで使用しているすべての接続を '/ config/database.php'設定ファイルで定義する必要があります。次に、クエリを構築するときに 'connection()'を使用します。あなたのクエリがモデルであれば、私の答えのコードを使って 'foo'を設定ファイルに定義されている接続名に変更してください。 –

1

あなたはDB::connection($connName)を使用することができます:あなたは、モデル法にconnection()を使用しようとすることができるように

+0

どこで設定しますか? –

関連する問題