Laravel8 複数のデータベースに接続する方法

クエリを発行する前にsetConnection()で接続先を設定すればOK。

class MemberController extends Controller
{
	public function index()
	{
        $member = new Member;
        $member->setConnection('mysql2');
        $members = $member->get();

		return view('admin.member.index', compact('members'));
	}
}

同じスキーマで違うデータベースに接続する場合は、上記のようにモデルの定義は1つにしてsetConnection()で接続先を変更する方が良いが、”このモデルは必ずこのデータベース”と決まっている場合には、下記のようにモデル内で接続先データベースを定義しておいたほうが楽だと思う。

class Member extends Model
{
    protected $connection = 'mysql2';
}

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です