Frage

Ich migriere eine Codesigniter -Anwendung auf Kohana und möchte das Authan -Modul von Kohana nach Möglichkeit nutzen. Ich habe mir das "Standard" -Datenbankschema angesehen, das das Auth -Modul verwendet, aber ich habe bereits Tabellen und Spalten, die die relevanten Informationen enthalten, die anders genannt und strukturiert werden.

Gibt es eine Möglichkeit, sich zu ändern, wo es nach Benutzername/Passwort/E -Mail usw. sucht, möglicherweise durch Erweiterung Model_user und/oder Kohana_auth_orm? Ich möchte Orm, wo möglich, verwenden.

Ich möchte die Tabellennamen und Spaltennamen für jedes Element ändern, damit ich sie vollständig anpassen kann.

Wenn ich gezwungen bin, das Standardschema zu verwenden, verringert dies die Flexibilität meiner Anwendung ...

Ich habe eine Tabelle namens "Entity", in der grundlegende Details für (z. B. Benutzer, Ereignisse, Artikel) gespeichert werden. Diese Tabelle enthält keine Spalten für Benutzername/Passwort/E -Mail, da diese nicht für Ereignisse oder Artikel gelten würden. Die Werte für Benutzername usw. werden in einer Nachschlagetabelle gespeichert, die die Daten auf folgende Weise ordnet (für die Kürze gesenkt).

Table: entity
    Columns: entity_id

Table: map_entity_attribute
    Columns: entity_id, attribute_id, value

Table: attribute
    Columns: attribute_id, name

Beispieldaten:

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

Ich hoffe, dass ich dies klar erklärt habe, da ich klar erkennen kann, dass das Datenbankschema ziemlich ungewöhnlich ist.

Hoffentlich kann mich jemand in die richtige Richtung weisen!

Vielen Dank, Steve

War es hilfreich?

Lösung

Kohana ist so eingebaut, dass Sie fast jede Klasse in Ihrem "Anwendungs" -Fordner überschreiben können, und es wird Vorrang vor Klassen haben, die in den Modulen definiert sind:http://kohanaframework.org/3.3/guide/kohana/files

Spezifisch für Ihren Fall, sollten Sie überschreiben (nicht erweitern) Der Model_User. Dazu müssen Sie einen Dateinamen user.php in Ihre Anwendung/ Ihr Modell/ Ihren Ordner einfügen. Es sollte wahrscheinlich die Klasse model_auth_user erweitern.

Sie müssten wahrscheinlich einige der Klassen neu schreiben, aber zumindest einige von ihnen sollten für Sie so verwendet werden, wie es ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top