X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FManual%2FJoining.pod;h=1948be6bd45c1136d9dba5db5e383b29db2f40fb;hb=47d7b769c034e04989840b1efc2f5991518cff23;hp=c99ce555ed6fa29308774ede001bda95dc1a9710;hpb=23d9df4174e2192ef03f0d308413b61a43464bcd;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Manual/Joining.pod b/lib/DBIx/Class/Manual/Joining.pod index c99ce55..1948be6 100644 --- a/lib/DBIx/Class/Manual/Joining.pod +++ b/lib/DBIx/Class/Manual/Joining.pod @@ -1,4 +1,4 @@ -=head1 NAME +=head1 NAME DBIx::Class::Manual::Joining - Manual on joining tables with DBIx::Class @@ -154,17 +154,17 @@ Which will produce the query: Note that the '+as' does not produce an SQL 'AS' keyword in the output, see the L for an explanation. -This type of column restriction has a downside, the resulting $row +This type of column restriction has a downside, the returned $result object will have no 'track_name' accessor: - while(my $row = $search_rs->next) { - print $row->track_name; ## ERROR + while(my $result = $search_rs->next) { + print $result->track_name; ## ERROR } Instead C must be used: - while(my $row = $search_rs->next) { - print $row->get_column('track_name'); ## WORKS + while(my $result = $search_rs->next) { + print $result->get_column('track_name'); ## WORKS } =head2 Incomplete related objects @@ -175,14 +175,14 @@ has a very large field you don't need for the current data output. This is better solved by storing that field in a separate table which you only join to when needed. -To fetch an incomplete related object, supply the dotted notation to the '+as' attribute: +To fetch an incomplete related object, supply the dotted notation to the '+as' attribute: $schema->resultset('CD')->search( { 'Title' => 'Funky CD', }, { join => 'tracks', '+select' => ['tracks.Name'], - '+as' => ['tracks.Name'], + '+as' => ['tracks.Name'], order_by => ['tracks.id'], } ); @@ -193,8 +193,8 @@ Which will produce same query as above; Now you can access the result using the relationship accessor: - while(my $row = $search_rs->next) { - print $row->tracks->name; ## WORKS + while(my $result = $search_rs->next) { + print $result->tracks->name; ## WORKS } However, this will produce broken objects. If the tracks id column is @@ -232,13 +232,13 @@ Which is: To perform joins using relations of the tables you are joining to, use a hashref to indicate the join depth. This can theoretically go as -deep as you like (warning: contrived examples!): +deep as you like (warning: contrived examples!): join => { room => { table => 'leg' } } To join two relations at the same level, use an arrayref instead: - join => { room => [ 'chair', 'table' ] } + join => { room => [ 'chair', 'table' ] } Or combine the two: