Est-il possible que certains modèles soient dans une base de données et d'autres dans une autre (utilisant la même connexion)?CakePHP utilisant plusieurs bases de données pour les modèles
J'ai un certain nombre de tables en lecture seule que je veux partager entre plusieurs installations de mon système. Les autres tables doivent être par installation. Pour l'exemple, disons users
est la table partagée, et posts
est par installation. Dans un schéma (appelons-le "partagé"), nous avons la table users
, et dans un autre schéma ("mycake") posts
. J'ai pu obtenir le modèle utilisateur lisant à partir de l'autre base de données en créant une nouvelle connexion à la base de données partagée (bien que les deux bases de données soient sur le même hôte et soient accessibles avec les mêmes informations de connexion).
class User extends AppModel {
var $useDBConfig = 'sharedConnection';
}
Le problème est quand vient le temps de se joindre à la table posts
. Il n'ajoute pas le nom du schéma au nom de la table et ne peut donc pas trouver posts
.
// what it does
SELECT * FROM users User INNER JOIN posts Post ...
// what I'd like it to do:
SELECT * FROM shared.users User INNER JOIN mycake.posts Post ...
Donc, fondamentalement, est-il un moyen d'attribuer un nom de table complet à un modèle et le forcer à utiliser que dans toutes ses requêtes? Réglage var $useTable = 'shared.users';
n'aide pas ...
Ceci est une bonne question. En choisissant un framework (en PHP), je vérifie toujours si le framework le permettra. – wenbert