2015-01-16 4 views
1

MySQL 데이터베이스에 DBIx :: Class를 사용하고 있습니다. Helper :: Row :: SubClass를 사용하여 상위 스키마에서 서브 클래 싱하여 많은 비슷한 결과 클래스를 만들었습니다. 동일한 .pm 파일에 둘 이상의 결과 클래스를 포함 할 수 있습니까? 그렇다면 방법을 제안하십시오.DBIX 클래스 - 동일한 파일의 여러 결과 클래스

+1

왜 한 파일에 여러 개의 클래스가 필요합니까? –

+0

약 15-20 개의 기본 클래스의 경우 각 클래스의 약 30 개의 하위 클래스를 만들어야합니다. 클래스의 각 서브 클래스는 클라이언트 ID를 서브 클래스 함수에 제공해야하는 2 문자 만 다릅니다. – bvnbhati

+0

그렇다면 각 클라이언트는 테이블에 클라이언트 ID를 가진 자체 테이블을 데이터베이스에 가지고 있습니까? 이것은 템플릿 파일과 루프 또는 2 개를 사용하여 생성하고자하는 것과 같습니다. –

답변

0

항상 동일한 파일에 여러 패키지를 넣을 수 있습니다.

package MyApp::Schema::Result::Foo; 

# Stuff 

package MyApp::Schema::Result::Bar; 

# Other Stuff 

1; 

거의 좋은 생각이 아닙니다.

+0

Perl에 따르면 이것이 가능하다는 것을 알고 있지만 DBIx :: Class 내부를 많이 인식하지 못하고 결과 클래스는 클래스 이름이 filename과 같지 않으면 업로드되지 않습니다. 오류는 "DBIx :: Class :: Schema :: source() : 의 원본을 찾을 수 없습니다." – bvnbhati

0

결과 클래스가 클래스 이름 또는 여러 결과 클래스가있는 파일에있는 경우 register_class을 사용하여 수동으로 결과 클래스를 등록해야합니다. 그래서 스키마 클래스에 추가 :

__PACKAGE__->register_class(Foo => 'MyApp::Schema::Result::Foo'); 
__PACKAGE__->register_class(Bar => 'MyApp::Schema::Result::Bar'); 

또한 여러 결과 집합 클래스를 포함하는 파일은 파일을 수동으로 load_namespcaes 또는 load_classesuse로 검색 디렉토리 외부에 있는지 확인하십시오.

관련 문제