Kohana 3 Auth Orm - Можете ли вы использовать другую схему базы данных?

StackOverflow https://stackoverflow.com/questions/19841593

Вопрос

Я перемещаю приложение Codeigniter в Кохану и хотел бы воспользоваться модулем автозаправления Коханы, если это возможно. Я посмотрел на «стандартную» схему базы данных, которую использует модуль 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';

Я надеюсь, что я четко объяснил, когда понимаю, что схема базы данных довольно необычная.

Надеюсь, кто -то сможет указать мне в правильном направлении!

Большое спасибо, Стив

Это было полезно?

Решение

Кохана встроен таким образом, что вы можете переопределить практически каждый класс в папке «приложения», и она будет иметь приоритет над классами, определенными в модулях:http://kohanaframework.org/3.3/guide/kohana/files

Конкретно для вашего дела, вы должны переопределить (не расширяется) Model_user. Для этого необходимо поместить имя файла user.php в ваше приложение/ модель/ папку. Вероятно, он должен расширить класс model_auth_user.

Вам, вероятно, придется переписать некоторые классы, но, по крайней мере, некоторые из них должны быть полезны для вас как есть.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top