[Dbix-class] load_classes question

eden edencardim at gmail.com
Sun Oct 28 23:57:35 GMT 2007


On 10/28/07, Rolf Schaufelberger <rs at plusw.de> wrote:
> Hi,
>
> I have different applications that share a set of common features and thus
> tables and DBIC-classes.
> I want to have my common classes and my application specific classes
> in different namespaces so that Application A can use all common and her own,
> and App. B all common and his own. Relations exist in both directions between
> common and A or common and B.
>
> Now I don't know how to set this up properly.
>
> So currently I have:
>
> MySchema::DB::  *   all common classes
> Site::SiteA::DB:: *  classes from SiteA
> Site::SiteB::DB:: *  classes from SiteB
> ...
>
> Along with this I have different schema classes:
>
> Site::SiteA::DB.pm
> Site::SiteB::DB.pm
>
> Example:
> Common class:
> MySchema::DB::Users
> ..
> # no belongs_to  defined
> ;
> ----------------------------------------
> in Site::SiteA::DB::Company.pm:
>
> package Site::SiteA::DB::Company;
> ...
> has_many(users => 'MySchema::DB::Users' );
> -----------------------------------------
> and my schema class in   Site::SiteA::DB.pm
> package Site::SiteA::DB;
> ...
> __PACKAGE__->load_classes ( qw(Company), {MySchema::DB => [qw(Users)]});
> ---------------------------------------------
> Now caling
> my $c = $schema->resultset('Company')->find(1);
> my @users = $c->users;
>
> works, but when I add in Users.pm
> belongs_to (company , 'MySchema::DB::Company');
> I get an error : "Can't locate MySchema/DB/Company.pm"
> So far I can understand this.
>
> Now I tried it this way:
> in Site::SiteA::DB.pm
> package MySchema::DB
> ...
> __PACKAGE__->load_classes ( qw(Users), {Site::SiteA::DB => [qw(Comapny)]});
> ------------------------------------
> again it works as far as there is no belongs_to in Users.pm, but as soon as I
> define this I get the same error again.

Try belongs_to('company', 'Company')

> So how can I get this to work ?
>
> I tried to understand load_namesaces, but I don't understand the difference
> between  "result class" and result_set class".

A result class defines what class your row objects will be blessed
into, a resultset class defines what class your resultsets (a class
representing a collection of result objects) will be blessed into.

-- 
edenc.vox.com



More information about the DBIx-Class mailing list