Kohana的构建方式使您可以覆盖“应用程序”文件夹中的几乎每个类,并且它将优先于模块中定义的类:http://kohanaframework.org/3.3/guide/kohana/files
特定于您的案件,您应该 覆盖 (不扩展)model_user。为此,您需要将文件名user.php放入应用程序/型号/文件夹中。它可能应该扩展Model_Auth_user类。
您可能必须重写一些课程,但至少其中一些应该像以前有关。
题
我正在将代码签名应用程序迁移到Kohana,并希望在可能的情况下利用Kohana的auth模块。我已经查看了Auth模块使用的“标准”数据库架构,但是我已经有包含不同命名和构建方式的相关信息的表和列。
有没有办法更改它在寻找用户名/密码/电子邮件等的地方。也许通过扩展 model_user 和/或 kohana_auth_orm?我想在可能的情况下使用ORM。
我想更改每个项目的表名和列名,以便我可以完全自定义。
如果我被迫使用标准模式,这将降低我的应用程序的灵活性...
我有一个称为“实体”的表格,其中存储(例如用户,事件,文章)的基本细节。该表没有用于用户名/密码/电子邮件的列,因为这些表不适用于事件或文章。用户名等的值存储在查找表中,该表以下面的示例方式映射数据(简短删除)。
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类。
您可能必须重写一些课程,但至少其中一些应该像以前有关。