ahmadajah03 Thu Oct 2020 1 year ago

Contoh Tutorial Multiple Database Connection Laravel 8

 

Apakah Anda mencari contoh multiple koneksi database laravel 8. Tutorial ini akan memberi Anda contoh sederhana dari beberapa koneksi database di laravel 8. mari kita bahas tentang laravel 8 beberapa koneksi database .env. Di sini Anda akan mempelajari beberapa koneksi db di laravel 8. Mari kita mulai dengan koneksi multi database laravel 8.

Saya akan memberi Anda implementasi langkah demi langkah tentang cara menggunakan beberapa koneksi database laravel 8 menggunakan file .env. Kami akan menambahkan variabel konfigurasi pada file .env dan menggunakannya untuk file konfigurasi database. Anda bisa mengikuti saya, saya juga akan belajar bagaimana bekerja dengan migrasi, model dan query database untuk beberapa koneksi database.

Seperti yang kita ketahui kadang-kadang kita perlu menggunakan beberapa koneksi database seperti mysql, mongodb dll. Saya dapat mengatakan ketika Anda bekerja dengan proyek dalam jumlah besar maka Anda mungkin perlu. Jadi mari kita ikuti langkah berikut.

Setel Variabel ENV:

Di sini, Anda perlu mengatur variabel konfigurasi pada file .env. mari buat seperti di bawah ini:

.env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydatabase
DB_USERNAME=root
DB_PASSWORD=root
   
DB_CONNECTION_SECOND=mysql
DB_HOST_SECOND=127.0.0.1
DB_PORT_SECOND=3306
DB_DATABASE_SECOND=mydatabase2
DB_USERNAME_SECOND=root
DB_PASSWORD_SECOND=root

Gunakan Variabel ENV:

Sekarang, saat kita membuat variabel di file env, kita perlu menggunakan variabel itu pada file config jadi mari kita buka file database.php dan tambahkan kunci koneksi baru seperti di bawah ini:

config/database.php

<?php
  
use Illuminate\Support\Str;
  
return [
   
    'default' => env('DB_CONNECTION', 'mysql'),
   
    'connections' => [
        .....
   
        'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],
        'mysql2' => [
            'driver' => env('DB_CONNECTION_SECOND'),
            'host' => env('DB_HOST_SECOND', '127.0.0.1'),
            'port' => env('DB_PORT_SECOND', '3306'),
            'database' => env('DB_DATABASE_SECOND', 'forge'),
            'username' => env('DB_USERNAME_SECOND', 'forge'),
            'password' => env('DB_PASSWORD_SECOND', ''),
            'unix_socket' => '',
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
        ],
.....        

Gunakan Database Multiple Connection:

Di sini, saya akan memberi Anda contoh sederhana tentang bagaimana Anda dapat menggunakan beberapa koneksi:

Koneksi Database dengan migrasi

Default:

<?php
.....
public function up()
{
    Schema::create('blog', function (Blueprint $table) {
        $table->increments('id');
        $table->string('title');
        $table->string('body')->nullable();
        $table->timestamps();
    });
}
.....

Kedua:

<?php
.....
public function up()
{
    Schema::connection('mysql2')->create('blog', function (Blueprint $table) {
        $table->increments('id');
        $table->string('title');
        $table->string('body')->nullable();
        $table->timestamps();
    });
}
.....

Koneksi Database dengan model

Default:

<?php
   
namespace App;
  
use Illuminate\Database\Eloquent\Model;
   
class Blog extends Model
{
}


Kedua:

<?php
   
namespace App;
  
use Illuminate\Database\Eloquent\Model;
   
class Blog extends Model
{
    protected $connection = 'mysql2';
}

Koneksi Database di Controller

Default:

<?php
  
class BlogController extends BaseController
{
    public function getRecord()
    {
        $blogModel = new Blog;
        $find = $blogModel->find(1);
        return $find;
    }
}

Second:

<?php
  
class BlogController extends BaseController
{
    public function getRecord()
    {
        $blogModel = new Blog;
        $blogModel->setConnection('mysql2');
        $find = $blogModel->find(1);
        return $find;
    }
}

Koneksi Database dengan Query Builder

Default:

$blogs = DB::table("blog")->get();
print_r($blogs);

Kedua

$blogs = DB::connection('mysql2')->table("blog")->get();
print_r($blogs);

Saya harap ini dapat membantu Anda ...

laravel laravel 8 laravel 8 multiple database connection tutorial