Maison > cadre php > Laravel > le corps du texte

Comment connecter deux bases de données pour interroger des données dans Laravel

PHPz
Libérer: 2023-04-12 09:54:02
original
1265 Les gens l'ont consulté

Avec l'avancement et le développement continus de la technologie réseau, les applications Web modernes sont devenues aujourd'hui un élément indispensable. Mais dans les applications Web, la gestion des données constitue évidemment aussi un maillon crucial. De plus, pour les grandes applications Web, il existe généralement plusieurs bases de données. Par exemple, une plateforme de commerce électronique, en plus de la base de données d'informations de base sur les produits, disposera également de différentes bases de données telles que les informations sur les utilisateurs, les informations de commande, les informations de paiement, etc. Alors, comment connecter plusieurs bases de données et interroger des données sous le framework Laravel ? Cet article fournira une méthode qui peut être suivie.

Tout d'abord, vous devez configurer plusieurs bases de données dans le fichier de configuration de base de données de Laravel config/database.php, comme indiqué ci-dessous :

'connections' => [

    'mysql' => [
        //mysql主数据库
        'driver' => 'mysql',
        'host' => 'localhost',
        'database' => 'db1',
        'username' => 'root',
        'password' => '',
    ],

    'mysql2' => [
        //mysql2次数据库
        'driver' => 'mysql',
        'host' => 'localhost',
        'database' => 'db2',
        'username' => 'root',
        'password' => '',
    ],

],
Copier après la connexion

Deux connexions à la base de données, mysql et mysql2, sont définies dans le fichier de configuration ci-dessus. La configuration spécifique peut être ajustée selon vos propres besoins.

Ensuite, deux connexions à la base de données doivent être définies. Vous pouvez créer une nouvelle classe de base ModelBase dans le répertoire /model et y définir plusieurs connexions.

<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class ModelBase extends Model
{
    // mysql
    protected $connection = &#39;mysql&#39;;

    // mysql2
    protected $connection2 = &#39;mysql2&#39;;

    protected function getConnectionName()
    {
        if ($this->getConnection() === $this->connection2) {
            return $this->connection2;
        }
        return $this->connection;
    }

    public function getTable()
    {
        $table = parent::getTable();

        if ($this->getConnection() === $this->connection2) {
            $table = 'db2.' . $table;
        }
        return $table;
    }

}
Copier après la connexion

Le code ci-dessus définit deux connexions : mysql et mysql2. Et définissez les deux fonctions getConnectionName et getTable. La fonction getConnectionName renvoie le nom de connexion à la base de données actuelle et la fonction getTable est utilisée pour obtenir la table de base de données actuelle.

Enfin, utilisez-le dans le modèle réel :

namespace App\Models;
class UserModel extends ModelBase
{
    protected $table = 'user';
}
Copier après la connexion

Dans le modèle, il hérite de ModelBase, et lors de la définition de $table, il vous suffit d'écrire le nom de la table.

Ce qui précède est une méthode de connexion de deux bases de données pour interroger des données dans Laravel. De cette manière, des opérations d'interrogation de plusieurs bases de données peuvent être réalisées. Pour les applications à grande échelle, cette méthode peut résoudre efficacement les problèmes de requêtes entre plusieurs bases de données, rendant le programme plus efficace et plus stable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!