Cómo usar múltiples bases de datos en Laravel
Framework PHP – Laravel es un framework PHP gratuito y de código abierto, creado por Taylor Otwell. Sigue un patrón de diseño Modelo-Vista-Controlador (MVC). Laravel reutiliza los componentes existentes de diferentes marcos, lo que ayuda a crear una aplicación web perfecta y sobresaliente. Si estás familiarizado con PHP, Advance PHP te facilitará la tarea. Laravel es seguro y previene los ataques web utilizando su protección CSRF (Cross-site Request Forgery).
Mientras desarrollamos una aplicación web, algunas veces necesitamos usar múltiples bases de datos debido a los requisitos del proyecto o proyectos a gran escala, en este momento, laravel permite usar múltiples conexiones de bases de datos. Puede aprender fácilmente cómo usar múltiples bases de datos con laravel en este blog.
Agregar detalle de conexión de base de datos en .env
DB_HOST_SECOND="DB HOST HERE"
DB_PORT_SECOND="DB PORT HERE"
DB_DATABASE_SECOND="DATABASE NAME HERE"
DB_USERNAME_SECOND="DB USERNAME HERE"
DB_PASSWORD_SECOND="DB PASSWORD HERE"}
Como puede ver, puede usar múltiples si desea usar más bases de datos, también puede usar otros motores de bases de datos. Aquí usamos MySQL.
Configure los detalles de la base de datos en config/base de datos.php
agregue detalles en la matriz de connections.
<?php return [ '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', ''), ], 'mysql_second'=>[ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), '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', ''), ] ] ];?>
Nota: Agregar todos los detalles de la conexión de la base de datos Aquí agregamos solo los detalles de la base de datos con fines de aprendizaje.
Ahora aprenderemos a usar esta conexión con Schema, Query y Eloquent Model.
Generador de esquemas
Con Schema Builder, puede usar cualquier conexión simplemente ejecutando el método connection()
:
Schema::connection('mysql_second')->create('table_name', function($table){
// entire code here
});
Consultor de construcción
Similar a Schema Builder, puede definir una conexión en Query Builder:
$posts = \DB::connection('mysql_second')->select('id','title')->get();
Modelo elocuente
Similar a Query Builder, puede definir una conexión en Eloquent Model:
<?phpnamespace App\Models;class Post extends Eloquent { protected $connection = 'mysql_second'; }?>
Además, puede usar la conexión en consultas de combinación personalizadas. con este sencillo ejemplo:
\DB::table('posts')->join('mysql_second.types as secondDbType','posts.code','=','secondDbType.code')->first();
Gracias por leer este blog.