X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FRelationship%2FHasMany.pm;h=6ef09fb74ce0661757e8509e8be70f90d2d9e178;hb=7474ed3b192693baa28d2f52de502f0ec3e8ac4e;hp=664f4fde7ad2717998be18914be4bca5f39a2eda;hpb=9e7525a2cc9d7459ee89a6d2c85913a8b8c4eff9;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Relationship/HasMany.pm b/lib/DBIx/Class/Relationship/HasMany.pm index 664f4fd..6ef09fb 100644 --- a/lib/DBIx/Class/Relationship/HasMany.pm +++ b/lib/DBIx/Class/Relationship/HasMany.pm @@ -3,7 +3,7 @@ package # hide from PAUSE use strict; use warnings; -use Try::Tiny; +use DBIx::Class::_Util 'dbic_internal_try'; use namespace::clean; our %_pod_inherit_config = @@ -16,7 +16,7 @@ sub has_many { unless (ref $cond) { - my $pri = $class->result_source_instance->_single_pri_col_or_die; + my $pri = $class->result_source->_single_pri_col_or_die; my ($f_key,$guess); if (defined $cond && length $cond) { @@ -28,12 +28,13 @@ sub has_many { $guess = "using our class name '$class' as foreign key source"; } - # only perform checks if the far side appears already loaded - if (my $f_rsrc = try { $f_class->result_source_instance } ) { - $class->throw_exception( - "No such column '$f_key' on foreign class ${f_class} ($guess)" - ) if !$f_rsrc->has_column($f_key); - } +# FIXME - this check needs to be moved to schema-composition time... +# # only perform checks if the far side appears already loaded +# if (my $f_rsrc = dbic_internal_try { $f_class->result_source } ) { +# $class->throw_exception( +# "No such column '$f_key' on foreign class ${f_class} ($guess)" +# ) if !$f_rsrc->has_column($f_key); +# } $cond = { "foreign.${f_key}" => "self.${pri}" }; } @@ -45,6 +46,7 @@ sub has_many { join_type => 'LEFT', cascade_delete => $default_cascade, cascade_copy => $default_cascade, + is_depends_on => 0, %{$attrs||{}} }); }