質問

CodeigniterアプリケーションをKohanaに移行しており、可能であればKohanaの認証モジュールを利用したいと考えています。 Authモジュールが使用する「標準」データベーススキーマを調べましたが、名前が異なる関連情報を含むテーブルと列が既にあります。

ユーザー名/パスワード/電子メールなどを探している場所を変更する方法はありますか。 model_user および/または kohana_auth_orm?可能な限りORMを使用したいのですが。

各アイテムのテーブル名と列名を変更して、完全にカスタマイズできるようにしたいと思います。

標準スキーマを使用することを余儀なくされた場合、これによりアプリケーションの柔軟性が低下します...

「ユーザー、イベント、記事など)の基本的な詳細が保存される「エンティティ」と呼ばれるテーブルが1つあります。このテーブルには、イベントや記事には適用されないため、ユーザー名/パスワード/電子メールの列がありません。ユーザー名などの値はルックアップテーブルに保存されており、次の例でデータをマップします(簡潔にするためにカットダウン)。

Table: entity
    Columns: entity_id

Table: map_entity_attribute
    Columns: entity_id, attribute_id, value

Table: attribute
    Columns: attribute_id, name

例データ:

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

データベーススキーマが普通ではないことを理解しているので、私はこれを明確に説明したことを願っています。

うまくいけば、誰かが私を正しい方向に向けることができます!

どうもありがとう、スティーブ

役に立ちましたか?

解決

Kohanaは、「アプリケーション」フォルダーのほぼすべてのクラスをオーバーライドできるように構築されており、モジュールで定義されているクラスよりも優先されます。http://kohanaframework.org/3.3/guide/kohana/files

あなたのケースに固有の場合は、そうする必要があります オーバーライド (拡張しない)model_user。そのためには、アプリケーション/モデル/フォルダーにファイル名user.phpを配置する必要があります。おそらくModel_Auth_userクラスを拡張する必要があります。

おそらくいくつかのクラスを書き直す必要がありますが、少なくともそれらのいくつかはあなたにそのまま使用可能でなければなりません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top