On Tue, Jun 18, 2013 at 11:54 AM, Stephen Shorrock <
[email protected]> wrote:
<snip>

> then (in Cat app)
> $c->model('MyApp::IndexStatus')->search_related('old_statuses');
>
> produces SQL something like:
> SELECT me.myindex, me.myoldindex, me.mystatus FROM index_statuses me  JOIN
> index_statuses old_statuses ON old_statuses.myindex = me.myoldindex:
>
> even adding {join_type=>'LEFT'} to the arguments of has_many does not
> produce a left join.
>

It looks like the code asks for "all MyApp::IndexStatus with matching
old_statuses records". That translates into an INNER JOIN.

If you're looking for "all MyApp::IndexStatus records along with any
related old_statuses records", try something like this:
foreach my $index_status ($c->model('MyApp::IndexStatus')->all) {
    # Generate the HTML here with columns from $index_status...
    foreach my $old_status ($index_status->old_statuses->all) {
        # Generate the HTML here for any $old_status records...
    }
}

-- 
Robert Wohlfarth
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to