[Cologne-pm] DBIx::Class joins?!?

Michael Lamertz mike at lamertz.net
Thu Jul 5 02:17:59 PDT 2007


On Thu, Jul 05, 2007 at 09:29:34AM +0200, Tobias Kremer wrote:
> Hi Michael,
> 
> versuch das mal:
> 
> > ---------- Schema/Cd.pm ----------
> > package Schema::Cd;
> > __PACKAGE__->has_many( cd_genre => 'Schema::CdGenre', 'genre' );
> > __PACKAGE__->many_to_many( 'cds' => 'cd_genre', 'cd' );
> 
> __PACKAGE__->has_many( cd_genre => 'Schema::CdGenre', 'cd' );
> __PACKAGE__->many_to_many( 'genres' => 'cd_genre', 'genre' );

OENK!  Danke!

Das hatte ich aber bei meinen bisherigen Versuchen durchaus richtig.

> # Alle CDs im Genre "Techno":
> my $genre = $schema->resultset( 'Genre' )->find( { name => 'Techno' } );
> my @cds = $genre->cds();
> print $_->name for @cds;
> 
> Hoffe, es funktioniert und hilft Dir weiter!

Naja, die 2-Step-Loesung tat schon eine ganze Weile, aber ich suche ja
nach der Syntax fuer einen Join.

Wenn wir zurueck zum 1. Beispiel gehen und im Schema noch das Feld
'year' einbauen, dann ist Deine Loesung

@cds = $genre->cds->search( { year => '2006' } );

Aber wie gesagt, mir geht's 'drum, das DBIx-Join zu kapieren.

Das Object-Mapping ist zwar echt nett, aber diese Suchsyntax... ich kann
im Moment garnicht soviel fressen wie ich kotzen moechte...

-- 
                 Michael Lamertz - Sandstr. 122 - 50226 Frechen
         M: +49 171 6900310 / T: +49 2234 204947 / F: +49 2234 4358725
           www.perl-ronin.de - www.fuss-und-hand.de - www.lamertz.net
      mlamertz at perl-ronin.de - michael at fuss-und-hand.de - mike at lamertz.net


More information about the Cologne-pm mailing list