[Dbix-class] load_classes from another schema with same module name?

Josef Chladek josef.chladek at boerse-express.com
Sun Mar 11 14:53:45 GMT 2007


hello list,

I have a problem with the following setup:

package Xatalyst::Schema::Newsletter;
use base qw/DBIx::Class::Schema/;

__PACKAGE__->load_classes({
        Xatalyst::Schema::BElogs => [qw/ Entries /] ,
    },);
__PACKAGE__->load_classes();

1;

package Xatalyst::Schema::Newsletter::Entries;
use base Xatalyst::SourceBase;

__PACKAGE__->table('newsletter.newsletter');
__PACKAGE__->add_columns(qw/id title image date created status/);
__PACKAGE__->set_primary_key('id');
__PACKAGE__->has_many( "belogs",  
"Xatalyst::Schema::Newsletter::BElog_Relation" => "newsletter", 
{ order_by => 'seq' } );
1;

package Xatalyst::Schema::Newsletter::BElog_Relation;
use base Xatalyst::SourceBase;

__PACKAGE__->table('belog_relation');
__PACKAGE__->add_columns(qw/id newsletter belog seq/);
__PACKAGE__->set_primary_key('id');
__PACKAGE__->belongs_to(belog => 'Xatalyst::Schema::BElogs::Entries');
1;

to test this:

my $connect = "Xatalyst::Model::Newsletter"->config->{connect_info};
my $model = Xatalyst::Schema::Newsletter->connect(@$connect);

my $entry = $model->resultset('Entries')->find(2855);

my $belogs = $entry->belogs;
while  (my $entry = $belogs->next) {
	warn $entry->belog;
};

$entry->belog does not point to Xatalyst::Schema::BElogs::Entries but  
to Xatalyst::Schema::Newsletter::Entries
how can I manage to import from another schema and avoid that Entries  
from BElogs is not overridden by Entries from Newsletter?

thanks
josef





More information about the Dbix-class mailing list