If the data is coming from the DB it does not use the "new" sub it uses a sub inflate_result.
Start by looking at these (search for inflate_result) https://metacpan.org/pod/distribution/DBIx-Class/lib/DBIx/Class/Manual/Cookbook.pod https://metacpan.org/pod/DBIx::Class::Row#inflate_result On Fri, Nov 30, 2018 at 12:58 AM ejm <man...@mindspring.com> wrote: > Hi All, > > Another newbie question about the "Can't find source for XXX" error > message. > > I've been able to establish a connection to my MySQL DB by specifying a > storage type for my Schema, > but I keep getting the "Can't find source for XXX" error message when I > try searching the table XXX. > > In my Schema object I have : > > __PACKAGE__->load_namespaces(); > > and the usual "use base qw(DBIx::Class::Schema); > > so that methods are correctly inherited from DBIx::Class::Schema. > > Then I have a new constructor in my Schema object which blesses my object > in the namespace I need it in: > > sub new { > my ($proto, $db) = @_; > my $class = ref($proto) || $proto; > my $self = bless {}, $class; > > $self->storage_type('::DBI::mysql'); > return $self->connect($dsn, $dbuser, $dbpw, { AutoCommit => 1}); > } > > where $db is the MySQL DB I need to access and $dbuser, $dbpw are local > variables containing the usual User and PW. > > and $dsn = "dbi:mysql:database=$db"; > > I've checked the object returned by the constructor and it has the > expected entries: > > class_mappings => { 'X::Y::Z::Result::Table1' => 'Table1', > 'X::Y::Z::Result::Table2' => 'Table2', > ... > }, > > source_registrations => { > 'Table1' => bless( { 'result_class' => > 'X::Y::Z::Result::Table1', > 'resultset_class' => > 'X::Y::Z::ResultSet::Table1', > 'name' => 'Table1', > 'source_name' => 'Table1', > ... > }, > 'DBIx::Class::ResultSource::Table'}, > > ... > }, > > storage => { '_connect_info' => [ 'dbi:mysql:database=VSO', > 'dbuser', > 'dbpw', > { > 'AutoCommit' => 1 > }, > '_conn_pid' => 10779, > ... > > } > > > I see an entry in source_registrations for each of the tables in the DB > VSO, all with their correct columns. > However, I noted that the objects are all blessed into the generic > DBIx::Class::ResultSource::Table class and not > the X::Y::Z::ResultSource::Table1 class as I would have expected. > > Is that why I am getting the "Can't find source ..." error message ? > > I have a package for each table in X::Y::Z::Result namespace and > additionally a package for the table I am testing > in both X::Y::Z::ResultSource::Table1 and X::Y::Z::ResultSet::Table1 > > I noted that the resultset_class key above was indeed set to my > namespace-specific package for my test table. > > Any tips or ideas would be greatly appreciated. > > > Thanks, > > --Ed > > > > > > > > _______________________________________________ > 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@lists.scsys.co.uk