Domanda

Sto migrando un'applicazione di codeigniter su Kohana e, se possibile, vorrei sfruttare il modulo di auth di Kohana. Ho esaminato lo schema del database "standard" utilizzato dal modulo AUTH, ma ho già tabelle e colonne che contengono le informazioni pertinenti che sono denominate e strutturate in modo diverso.

C'è un modo per cambiare dove sta cercando nome utente/password/e -mail ecc. Forse estendendo Modello_user e/o Kohana_auth_orm? Vorrei usare ORM dove possibile.

Vorrei modificare i nomi delle tabelle e i nomi delle colonne per ogni elemento, in modo da poterlo personalizzare completamente.

Se sono costretto a utilizzare lo schema standard, ciò ridurrà la flessibilità della mia applicazione ...

Ho una tabella chiamata "Entity" in cui sono archiviati i dettagli di base per (ad es. Utenti, eventi, articoli). Questa tabella non ha colonne per nome utente/password/e -mail perché non si applicherebbero a eventi o articoli. I valori per il nome utente ecc. Sono archiviati in una tabella di ricerca, che mappa i dati nel seguente modo di esempio (tagliare per la brevità).

Table: entity
    Columns: entity_id

Table: map_entity_attribute
    Columns: entity_id, attribute_id, value

Table: attribute
    Columns: attribute_id, name

Dati di esempio:

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';

Spero di averlo spiegato chiaramente come mi rendo conto che lo schema del database è abbastanza fuori dall'ordinario.

Spero che qualcuno possa indicarmi nella giusta direzione!

Molte grazie, Steve

È stato utile?

Soluzione

Kohana è costruito in modo tale da poter sovrascrivere quasi ogni classe nella cartella "Applicazione" e avrà la precedenza sulle classi definite nei moduli:http://kohanaframework.org/3.3/guide/kohana/files

Specifico per il tuo caso, dovresti oltrepassare (non estendere) il modello_user. Per fare ciò, è necessario inserire un nome file user.php nell'applicazione/ modello/ cartella. Probabilmente dovrebbe estendere la classe Model_auth_user.

Probabilmente dovresti riscrivere alcune delle classi, ma almeno alcune di esse dovrebbero essere utilizzabili per te così com'è.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top