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..
tutorial laravel multiple connection database laravel laravel 8 laravel