Question

Je migrerai une application CodeIgniter vers Kohana et je voudrais profiter si possible du module Auth de Kohana. J'ai examiné le schéma de base de données "standard" que le module Auth utilise, mais j'ai déjà des tables et des colonnes qui contiennent les informations pertinentes qui sont nommées et structurées différemment.

Existe-t-il un moyen de changer où il recherche le nom d'utilisateur / mot de passe / e-mail, etc. peut-être en étendant Modèle_user et / ou Kohana_auth_orm? Je voudrais utiliser ORM dans la mesure du possible.

Je voudrais modifier les noms de table et les noms de colonne pour chaque élément, afin que je puisse le personnaliser entièrement.

Si je suis obligé d'utiliser le schéma standard, cela réduira la flexibilité de mon application ...

J'ai un tableau appelé "entité" où les détails de base (par exemple, les utilisateurs, les événements, les articles) sont stockés. Ce tableau n'a pas de colonnes pour nom d'utilisateur / mot de passe / e-mail car ceux-ci ne s'appliqueraient pas aux événements ou aux articles. Les valeurs pour le nom d'utilisateur, etc. sont stockées dans une table de recherche, qui cartographie les données de l'exemple suivant (couper pour la concision).

Table: entity
    Columns: entity_id

Table: map_entity_attribute
    Columns: entity_id, attribute_id, value

Table: attribute
    Columns: attribute_id, name

Exemple de données:

entity.entity_id = 99;

map_entity_attribute.entity_id = 99;
map_entity_attribute.attribute_id = 1;
map_entity_attribute.value = 'ThisIsMyUsername';

attribute.attribute_id = 1;
attribute.name = 'Username';

J'espère que j'ai expliqué cela clairement car je me rends compte que le schéma de base de données est tout à fait hors de l'ordinaire.

J'espère que quelqu'un pourra me diriger dans la bonne direction!

Merci beaucoup, Steve

Était-ce utile?

La solution

Kohana est construite de telle manière que vous pouvez remplacer presque toutes les classes de votre dossier "Application", et il aura la priorité sur les classes définies dans les modules:http://kohanaframework.org/3.3/guide/kohana/files

Spécifique à votre cas, vous devriez passer outre (pas étendre) le modèle_user. Pour ce faire, vous devez mettre un nom de fichier user.php dans votre application / modèle / dossier. Il devrait probablement étendre la classe Model_Auth_User.

Vous devrez probablement réécrire certains des cours, mais au moins certains d'entre eux devraient vous être utilisables tels quels.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top