[Dbix-class] has_many: no such column
Jason Galea
lists at eightdegrees.com.au
Wed Aug 5 12:51:24 GMT 2009
Hi xu zhou,
__PACKAGE__->has_many( 'resource' => 'DNS::WebDns::Result::Resource' );
you need to specify the column which has DNS::WebDns::Result::Zone's
primary id. ie:
__PACKAGE__->has_many( 'resource' => 'DNS::WebDns::Result::Resource',
'zone_id' );
It's guessing it's 'zone' which it gets from the class name.
cheers,
J
xu zhou wrote:
> Hi all,
> I just begin to use DBIx::Class, and I got a error described
> like this:
>
> DBIx::Class::Schema::throw_exception():
> DBIx::Class::Row::throw_exception():
> DBIx::Class::Relationship::HasMany::has_many(): No such column zone on
> foreign class DNS::WebDns::Result::Resource (using our class name
> 'DNS::WebDns::Result::Zone' as foreign key) at
> DNS/WebDns/Result/Zone.pm line 9
> Compilation failed in require at
> /usr/local/lib/perl5/site_perl/5.10.0/Class/C3/Componentised.pm line 128.
> Compilation failed in require at
> /usr/local/lib/perl5/site_perl/5.10.0/Class/C3/Componentised.pm line 128.
>
>
> Here is my code:
>
> use base qw/DBIx::Class/;
> __PACKAGE__->load_components(qw/Core PK::Auto/);
> __PACKAGE__->table('dns_zone');
> __PACKAGE__->add_columns(
> qw/ zone_id zone_name zone_ttl soa_ttl primary_name_server
> hostmaster_email serial retry refresh expire minimum_ttl city_rdc
> created_time modified_time /
> );
> __PACKAGE__->set_primary_key('zone_id');
> __PACKAGE__->has_many( 'resource' => 'DNS::WebDns::Result::Resource' );
>
> 1;
>
> package DNS::WebDns::Result::Resource;
> use base qw/DBIx::Class/;
>
> __PACKAGE__->load_components(qw/Core PK::Auto/);
> __PACKAGE__->table('dns_resource_record');
> __PACKAGE__->add_columns(qw/ resource_id zone_id map_from ttl type
> preference map_to created_time modified_time /);
> __PACKAGE__->set_primary_key('resource_id');
> __PACKAGE__->belongs_to( 'zone_id' => 'DNS::WebDns::Result::Zone');
>
> 1;
>
>
>
>
> actually quite simple and has nothing to discuss.
> but how come I got that Compilation Error?
> my DBIx::Class version is 0.08108
>
> thanks.
>
>
> --
> Xu Zhou
> Tju->PMO->Where?
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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
More information about the DBIx-Class
mailing list