Hi, Thanks very much.
I already solved it. I'm calling $file->fieldfiles->first->name() I know there will always be a related result. But you were right fieldfiles is returning a resultset. Thanks. Marc On Fri, Aug 13, 2010 at 4:54 PM, Ronald J Kimball <[email protected]> wrote: > On Fri, Aug 13, 2010 at 10:39 AM, Marc Perez <[email protected]> wrote: >> I'm doing the next query: >> my $files = $catVar->model('cmsDB::Files')->search( >> { >> 'me.cmsobj_id' => $this->cmsobj_id, >> -or => [mime_type => 'image/jpeg',mime_type => >> 'image/gif',mime_type => 'image/png'], >> 'fieldfiles.language_id' => $langId >> }, >> { >> join => 'fieldfiles', >> prefetch => 'fieldfiles' >> } >> ); >> >> When I try to access the fieldfiles data: >> >> while( my $file = $files->next() ) { >> print($file->fieldfiles->name) >> } >> >> I get the error: >> Can't locate object method "name" via package "DBIx::Class::ResultSet" > > Because "fieldfiles" is a has_many relationship, calling the accessor > in scalar context returns a resultset object, not a row object. You > probably want to do one of these: > > while (my $file = $files->next) { > my $fieldfiles = $file->fieldfiles; > while (my $fieldfile = $fieldfiles->next) { > print $fieldfile->name; > } > } > > while (my $file = $files->next) { > foreach my $fieldfile ($file->fieldfiles) { > print $fieldfile->name; > } > } > > You could also do something like this: > > while (my $file = $files->next) { > print join ", ", $file->fieldfiles->get_column('name')->all; > } > > Ronald > > _______________________________________________ > 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/[email protected] > _______________________________________________ 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/[email protected]
