[Dbix-class] Help with many to many relationship

Hailin Hu i at h2l.name
Wed Apr 2 06:19:51 GMT 2014


Abo.pm
 __PACKAGE__->has_many( abojrnabt => 'Dbc::Jrnabt',  {'foreign.noabt'
=> 'self.noabt'});

is supposed to be

Abo.pm
 __PACKAGE__->has_many( abojrnabt => 'Dbc::Schema::Result::Jrnabt',
{'foreign.noabt' => 'self.noabt'});

http://search.cpan.org/~ribasushi/DBIx-Class-0.08270/lib/DBIx/Class/Relationship.pm

On Wed, Apr 2, 2014 at 2:53 PM, RAPPAZ Francois
<francois.rappaz at unifr.ch> wrote:
> The Schema.pm and Schema folder are in a Dbc folder. The Schema.pm has package  Dbc::Schema
>
> The Result Folder in Schema folder holds the tables modules, for example Jrnabt.pm has package  Dbc::Schema::Result::Jrnabt
>
> When I fetch data from another table without using relationship, for example
>
>  my $s =  Dbc::Schema->connect(
>                 $dsn,
>                 $cfg->get_usr,
>                 $cfg->get_psw,
>                       {
>                 PrintError => 0,
>                 RaiseError => 1,
>                 AutoCommit => 1,
>                 mysql_enable_utf8=>1
>             }
>         );
> my $rs = $s->resultset('Ed')->search_rs( undef, {order_by => ['nom']} );
>
> while (my $ed = $rs->next){
>         print $ed->nom , "\n";
> }
>
> It works
>
> François
>
>> -----Original Message-----
>> From: Hailin Hu [mailto:i at h2l.name]
>> Sent: mercredi, 2. avril 2014 04:14
>> To: DBIx::Class user and developer list
>> Subject: Re: [Dbix-class] Help with many to many relationship
>>
>> Show up the folder structure and the actual package names.
>>
>> On Wed, Apr 2, 2014 at 12:09 AM, RAPPAZ Francois
>> <francois.rappaz at unifr.ch> wrote:
>> > Hi
>> >
>> > I have two tables Abo (primary key: noabt) and Jrn (primary key:
>> nofm)
>> > join  by a linking table jrnabt (primary keys: nofm, noabt)
>> >
>> > I have defined the relationship as
>> >
>> > Abo.pm
>> >  __PACKAGE__->has_many( abojrnabt => 'Dbc::Jrnabt',  {'foreign.noabt'
>> > => 'self.noabt'});
>> >
>> > Jrn.pm
>> >  __PACKAGE__->has_many(jrnjrnabt => 'Dbc::Jrnabt',  {'foreign.nofm'
>> =>
>> > 'self.nofm'});
>> >
>> > Jrnabt.pm
>> >
>> > __PACKAGE__->belongs_to(jrnabtjrn => 'Dbc::Jrn',  {'foreign.nofm' =>
>> > 'self.nofm'}); __PACKAGE__->belongs_to(jrnabtabo => 'Dbc::Abo',
>> > {'foreign.noabt' => 'self.noabt'});
>> >
>> > When I try
>> > my $rs = $schema->resultset('Abo')->search_rs({'abojrnabt.nofm' =>
>> > '1'}, {join => 'abojrnabt'});
>> >
>> > I got
>> > DBIx::Class::Schema::source(): Can't find source for Dbc::Jrnabt at
>> > U:\docs\perl\dokpe_i01_dbc\testdbc.pl line 62
>> >
>> > What am I missing ?
>> >
>> > Thanks
>> >
>> > François Rappaz
>> >
>> > Centre de documentation de la Faculté des Sciences Université de
>> > Fribourg DokPe - Dokumentationszentrum der Naturwissenschaftlichen
>> > Fakultät Universität Freiburg Pérolles CH-1700 Fribourg Switzerland
>> > http://www.unifr.ch/dokpe/
>> > Tel.: 41 (0)26 300 92 60
>> > Fax.: 41 (0)26 300 97 30
>> >
>> >
>> >
>> > _______________________________________________
>> > List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
>> > IRC: irc.perl.org#dbix-class
>> > SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
>> > Searchable Archive:
>> > http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk
>>
>> _______________________________________________
>> List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
>> IRC: irc.perl.org#dbix-class
>> SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
>> Searchable Archive: http://www.grokbase.com/group/dbix-
>> class at lists.scsys.co.uk
>
> _______________________________________________
> List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
> Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk



More information about the DBIx-Class mailing list