2011-05-12 4 views
3

데이터베이스에 정적 ORM을 만들 때 DBIx::Class::Schema::Loader을 사용하고 있습니다. 나는에 일반적인 서브 우퍼를 연결할 수 ResultSetResult 클래스에 대한 기본 클래스를 생성하고 지정하려면 다음 방법을 사용하십시오DBIx :: Class :: Schema :: Loader ResultSource 기본 클래스

make_schema_at(
'MyApp::Schema', 
{ 
    debug => 1, 
    dump_directory => '/home/rob/projects/myapp/MyApp/lib', 
    overwrite_modifications => 1, 
    components=> ['EncodedColumn'], 
    use_namespaces   => 1, 
    result_base_class  => 'MyApp::Schema::ResultBase', 
    default_resultset_class => 'ResultSetBase' 
}, 
[ 'DBI:mysql:database=mydb;host=localhost;port=3306','user', 'pass' ], 
); 
이 매력처럼 작동

,하지만 난에 대한 기본 클래스를 만드는 방법을 찾을 수 없습니다 ResultSource도 마찬가지입니다. 나는 (의사 코드) 뭔가를 할 수 있도록 그 클래스에 서브를 연결하고 싶습니다 :

$c->model('DB')->source->('Account')->getParentSource('Project'); 

ResultSourceBase.pm :

sub getParentSource { 
    my ($self,$parent) = @_; 
    foreach $relation in $self->relations 
     if ($relation->identifier eq $parent) 
      return $relation->source; 

    return $self; 
} 

사람이 어떻게 로더에게 말해 줄 수 베이스 ResultSource 클래스를 사용하여 위와 같은 것을 연결할 수 있습니까?

감사합니다.

답변