備忘録
新たに外部のDBに接続しなければならない状態になったのでメモ
現在ログイン中のユーザ名で、新規追加されるDBのアクセス権を持っていないという状態
接続設定
database.phpに新規で接続するDBの接続情報を記載
backend/config/database.php
'default' => 'mysql',
'mysql' => [
'driver' => 'mysql',
'url' => env('hoge'),
etc...
//追加するDBの情報を追加
'mysql-2' => [
'driver' => 'mysql',
'url' => env('hoge'),
etc...
コード上での切り替え
dafault設定のDBに接続してデータを取得するパターン
$hoge = DB::table('テーブル名')
->select('*')
->first();
追加したDBへ接続しデータを取得するパターン
$hoge2 = DB::connection('mysql-2') //新規DBに接続
->table('mysql-2のテーブル名')
->select('*')
->first();
DB::connectionで切り替えたあと、その変数の中では接続が切り替わったままになるため、別々のDBの値などを使いたい時などはそれぞれ変数に入れてから使う模様
$hoge = DB::table('animal')
->select('*')
->first();
$hoge2 = DB::connection('mysql-2')
->table('dog')
->where('pochi',$hoge->name) //新規DBのユーザに切り替わっているため、"animal.name"みたいに既存のDBを直接操作しようとしたらアクセス権限が無いと怒られる
->first(); //対策として既存DBの必要なデータを変数として用意し使用する->$ho