Bonjour,
J'aurais besoin d'aide svp.
J'utilise plusieurs sous-domaine et domaine pour une seule App avec CakePHP 2.4.4
Pour cela j'assigne deux variables : $domain et $subdomain
Ensuite j'aimerais récupérer en base l'id du site correspondant de cette façon
if ($domain == $domain_default) // Si le domaine est celui par défaut
$id_site = getIdsitebysubdomain($subdomain); // On retourne $id_site du sous domaine
else
$id_site = getIdsitebydomain($domain); // On retourne $id_site du domaine
Je ne sais pas où placer ma condition et mes deux méthodes pour que ma variable $id_site soit global
Merci
Pourquoi ne pas placer ton code dans le AppController à l'intérieur du beforeFilter et écrire les valeurs dans l'objet Session :
public function beforeFilter()
{
if ($domain == $domain_default)
{
Session::write('id_site', getIdsitebysubdomain($subdomain));
}
else
{
Session::write('id_site', getIdsitebydomain($domain));
}
}
Ensuite, tu peux récupérer cette valeur de n'importe ou en faisant :
Session::read('id_site');
EDIT : Remplacement de l'objet Configure par Session en accord avec ce qu'a dit @Lartak11. Bien vue :)
Sauf que le Configure::write va s'appliquer à toute l'application, ce qui veut dire que la valeur de la variable sera la même pour tous les domaines et sous-domaines.
Bonsoir Lartak11,
Tu veux dire que si je fais ceci :
Configure::write('id_site', 1);
Configure::write('id_site', 2);
Configure::read('id_site');
va retourner 1 ?
Non, le second écrasera la valeur du premier, mais le problème, c'est que la valeur de la variable que tu écris avec Configure doit être la même pour tous les utilisateurs et non par rapport à la navigation.
Tu ferais mieux d'écrire dans la session pour ton cas et non dans la configuration.
Configure::write() => écrit dans la configuration de l'application
Session::write() => écrit dans la session de l'utilisateur (bien plus indiqué dans ton cas vu que ça a un rapport avec la navigation de l'utilisateur)