Salut à tous, j'ai mon model Compte que j'utilise pour gérer la connexion des utilisateurs. Ce model a une association belongto avec le model utilisateur. Mon soucis est que dans l'interface de connexion, lorsque j'entre le login et le mot de passe, l'action login récupère l'enregistrement correspondant dans la table compte mais essai d'accedé aux informations qui se trouve dans la table utilisateurs ce qui m'affiche des erreurs signalant que les champs de la table utilisateurs n'existe pas ( la requete ne reconnait pas les colonne de cette table). Alors comment faire pour que lorsque je veus me connecter que la requete prenne en compte la table compte seulement?

2 réponses


romses
Auteur
Réponse acceptée

Merci pour votre intervention Lartak, en effet j'ai fait ceci dans l'action login de mon controller membres

public function login()
            {
                $this->layout = 'connexion';
                $this->Compte->unbindModel(array('belongsTo' => array('Utilisateur')));
                //debug($this->Session->read());
                if($this->request->is('post') && !empty($this->request->data))
                {

                    if($this->Auth->login())
                    {
                         $this->Session->setFlash('Bienvenue dans votre compte, Vous êtes connecter','default', array('class'=>'alert alert-success'));
                         return $this->redirect($this->Auth->redirectUrl());

                    }
                        else 
                        {
                             $this->Session->setFlash('Nom d\'utilisateur ou mot de passe invalide, réessayer','default', array('class'=>'alert alert-error'));

                        }
                }
            }

jusqu'ici mon problème estrésolu, jesper que ces pas une erreur de ma part

Bonsoir.
Si pour les associations tu utilises le behavior Containable, dans ton fichier AppModel, tu charges le behavior Containable et tu définies la récursivité à -1, de manière à ce que les associations ne soient pas actives tant que tu ne définies pas la clé contain dans tes requêtes.
Exemple :

class AppModel extends Model {

    public $actsAs = ['Containable'];

    public $recursive = -1;
}