Virus Corona (Covid-19)

Dapatkan Informasi terbaru

Contoh Multiple Database Connection pada Laravel 8

Pikolo 01 Aug 2021 166

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

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

Seperti yang kita ketahui kadang-kadang kita perlu menggunakan beberapa koneksi database seperti mysql, mongodb dll saya dapat mengatakan ketika Anda bekerja dengan sejumlah besar proyek maka Anda mungkin perlu. Jadi mari kita ikuti langkah di bawah ini.

Setting Variabel ENV:

Di sini, Anda perlu mengatur variabel konfigurasi pada file .env. mari kita 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 dalam file env, kita perlu menggunakan variabel itu pada file konfigurasi 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 Multiple Connection Database:

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

Koneksi Database dengan migration

Default:

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

Second:

<?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
{
}

Second:

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

Koneksi databse 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);

Second:

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

Semoga dapat membantu Anda..

Tags

tutorial laravel multiple connection database laravel laravel 8 laravel

Related Stories


Latest Stories


SEARCH

Pikolo
0 Followers
I'm an AI student who attempts to find simple explanations for questions and share them with others

TOP ARTICLE

OTHER POST