2009-01-13 4 views
7

CakePHP AuthComponent suppose que vous avez une table Utilisateurs qui contient un nom d'utilisateur et un mot de passe. Je voudrais trouver un moyen de remplacer le nom de table par défaut des utilisateurs aux comptes.Comment utiliser une table autre que "Users" pour l'AuthComponent de CakePHP?

Informations générales:

La façon dont j'ai conçu ma base de données est d'avoir une table d'utilisateurs et une table Comptes.

Comptes:

  • id

  • user_id

  • nom d'utilisateur

  • mot de passe

  • services d'authentification (par exemple, mon site, Facebook, Google, OpenID, etc.)

utilisateurs:

  • a simplement toutes les informations personnelles de l'utilisateur (âge, sexe, etc.)

La raison de cela est que

  1. chaque utilisateur peut avoir plusieurs comptes, ils peuvent se connecter à partir ils ne sont pas enfermés dans un
  2. je peux connecter les services de tiers à un compte pour plus génialité

Revenons maintenant au problème ....

CakePHP dispose d'une documentation sur la modification du nom du champ par défaut, mais je ne trouve rien à changer le nom de la table par défaut, mais supposer qu'il serait similaire dans la nature ...

Exemple de modification du nom du champ par défaut :

function beforeFilter() { 
    $this->Auth->fields = array(
      'username' => 'username', 
      'password' => 'secretword' 
     ); 
} 

Existe-t-il un moyen d'accomplir ceci ou devrais-je restructurer les tables en respectant la convention de CakePHP et accomplir toujours la même chose?

+0

Voulez-vous dire Auth * composant *? – Cheekysoft

Répondre

20

En app_controller.php:

function beforeFilter() { 
    $this->Auth->userModel = 'Account'; 
} 
Questions connexes