yii2 utilisant plusieurs méthodes d'instance de base de données

小云云
Libérer: 2023-03-20 10:34:01
original
1801 Les gens l'ont consulté

Concernant la configuration de yii2 et le fonctionnement de plusieurs bases de données, la configuration spécifique est également donnée dans le document. Un exemple pratique est également très simple. Ici, nous prenons le contrôle des autorisations comme bibliothèque de gestion unique dbname2 et la bibliothèque métier dbname comme exemple. . Voyons comment configurer plusieurs bases de données. Cet article vous présente principalement les cas d'utilisation de plusieurs bases de données dans yii2, en espérant vous aider.

No1. Dans un premier temps, on peut se référer à la plupart des documents de Baidu pour opérer.


'components' => [
  'db' => [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=ip;dbname=dbname',
    'username' => 'username',
    'password' => 'pwd',
    'charset' => 'utf8',
  ],
  'db2' => [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=ip;dbname=dbname2',
    'username' => 'username',
    'password' => 'pwd',
    'charset' => 'utf8',
  ],
],
Copier après la connexion

No2. Dans la deuxième étape, nous ouvrons ici le fichier de configuration main.php et ajoutons quatre configurations de table de données liées aux autorisations à l'option authManager.


'authManager' => [
  'class' => 'yii\rbac\DbManager',
  'defaultRoles' => ['guest'],
  'itemTable' => 'dbname2.auth_item',
  'itemChildTable' => 'dbname2.auth_item_child',
  'assignmentTable' => 'dbname2.auth_assignment',
  'ruleTable' => 'dbname2.auth_rule',
],
Copier après la connexion

En fait, les quatre propriétés de la classe supplieryisoftyi2rbacDbManager.php sont configurées ici. Cela devrait être cohérent avec ce qui précède et modifier directement le fichier de configuration du projet.

N°3. C'est presque fini ici. Certains élèves ont des questions, je ne l'ai pas encore lu, alors pourquoi c'est fini ? Alors, que pensez-vous que je devrais faire avec ma table utilisateur et ma table de menu ? Ne vous inquiétez pas, jetons un œil à la troisième étape :

Cette étape est également très simple. Nous pouvons simplement la configurer comme ci-dessous et tout ira bien

<. 🎜>Trouvez le fichier configparams.php de votre projet, ajoutez simplement les éléments de configuration suivants


&#39;mdm.admin.configs&#39; => [
  &#39;menuTable&#39; => &#39;dbname2.menu&#39;,
  // &#39;userTable&#39; => &#39;dbname2.user&#39;,
],
Copier après la connexion
Remarque, pourquoi l'élément de configuration userTable est bloqué ci-dessus, cela dépend de l'individu Pour la configuration, ouvrez le fichier suppliermdmsoftyii2-admincomponentsConfigs.php et vérifiez s'il existe un attribut userTable. Si c'est le cas, vous devez le configurer ici. Sinon, essayez de le configurer pour voir s'il signalera une erreur. >

Il reste encore une étape. Enfin, la dernière étape est également expliquée avec un exemple.

Prenons l'exemple de la table utilisateur ci-dessus. Si nous utilisons gii pour générer un fichier modèle User.php, car la table configurée par défaut se trouve dans la bibliothèque dbname et notre table utilisateur se trouve dans la bibliothèque. table de bibliothèque dbname2, nous devons donc modifier la méthode tableName du fichier modèle User.php et ajouter le nom de la bibliothèque devant la table.


Recommandations associées :

public static function tableName()
{
  return &#39;dbname.user&#39;;
}
Copier après la connexion


Code pour CI exploitant plusieurs bases de données en php

Comment connecter plusieurs bases de données en PHP en même temps_Tutoriel PHP

PHP Comment écrire des instructions de requête entre plusieurs bases de données

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!

Étiquettes associées:
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