문제

Codeigniter 응용 프로그램을 Kohana로 마이그레이션하고 있으며 가능한 경우 Kohana의 인증 모듈을 활용하고 싶습니다. 인증 모듈이 사용하는 "표준"데이터베이스 스키마를 살펴 보았지만 이미 이름 지어지고 구조화 된 관련 정보가 포함 된 테이블과 열이 이미 있습니다.

사용자 이름/비밀번호/이메일 등을 찾고있는 위치를 변경하는 방법이 있습니까? model_user 및/또는 kohana_auth_orm? 가능한 경우 ORM을 사용하고 싶습니다.

각 항목의 테이블 이름과 열 이름을 변경하여 완전히 사용자 정의 할 수 있습니다.

표준 스키마를 사용해야한다면 응용 프로그램의 유연성이 줄어 듭니다 ...

"Entity"라는 테이블 하나가 있으며 (예 : 사용자, 이벤트, 기사)에 대한 기본 세부 사항이 저장됩니다. 이 테이블에는 이벤트 나 기사에 적용되지 않기 때문에 사용자 이름/비밀번호/이메일 열이 없습니다. 사용자 이름 등에 대한 값은 조회 테이블에 저장되며 다음 예제 방식으로 데이터를 매핑합니다 (간결성을 위해 잘라짐).

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

데이터베이스 스키마가 평범하지 않다는 것을 깨달았을 때 이것을 명확하게 설명하기를 바랍니다.

바라건대 누군가가 나를 올바른 방향으로 가리킬 수 있기를 바랍니다!

많은 감사합니다, Steve

도움이 되었습니까?

해결책

Kohana는 "응용 프로그램"폴더의 거의 모든 클래스를 무시할 수있는 방식으로 구축되며 모듈에 정의 된 클래스보다 우선합니다.http://kohanaframework.org/3.3/guide/kohana/files

귀하의 경우에만 해당됩니다 우세하다 (확장되지 않음) model_user. 그렇게하려면 응용 프로그램/ 모델/ 폴더에 파일 이름 user.php를 넣어야합니다. 아마도 model_auth_user 클래스를 확장해야 할 것입니다.

당신은 아마도 일부 수업을 다시 작성해야 할 것입니다. 그러나 적어도 그들 중 일부는 그대로 당신에게 사용할 수 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top