[Catalyst-commits] r14367 -
CatalystX-CRUD/CatalystX-CRUD-Model-RDBO/trunk/lib/CatalystX/CRUD/Model
karpet at dev.catalyst.perl.org
karpet at dev.catalyst.perl.org
Wed Oct 31 18:12:03 GMT 2012
Author: karpet
Date: 2012-10-31 18:12:03 +0000 (Wed, 31 Oct 2012)
New Revision: 14367
Modified:
CatalystX-CRUD/CatalystX-CRUD-Model-RDBO/trunk/lib/CatalystX/CRUD/Model/RDBO.pm
Log:
support OneToMany relationship for find_related
Modified: CatalystX-CRUD/CatalystX-CRUD-Model-RDBO/trunk/lib/CatalystX/CRUD/Model/RDBO.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD-Model-RDBO/trunk/lib/CatalystX/CRUD/Model/RDBO.pm 2012-10-31 18:11:13 UTC (rev 14366)
+++ CatalystX-CRUD/CatalystX-CRUD-Model-RDBO/trunk/lib/CatalystX/CRUD/Model/RDBO.pm 2012-10-31 18:12:03 UTC (rev 14367)
@@ -354,7 +354,9 @@
my $method = 'find_' . $rel;
my $meta = $self->_get_rel_meta( $obj, $rel );
my $fpk = $meta->{map_to}->[1];
- return $obj->$method( [ $fpk => $foreign_pk_value ] );
+ my $args = [ $fpk => $foreign_pk_value ];
+ my $r = $obj->$method( query => $args );
+ return $r;
}
=head2 add_related( I<obj>, I<rel_name>, I<foreign_value> )
@@ -396,6 +398,15 @@
return \%m;
}
+ elsif ( $rel->isa('Rose::DB::Object::Metadata::Relationship::OneToMany') )
+ {
+ my $column_map = $rel->column_map;
+ my %m = (
+ map_to => [ reverse %$column_map ], # yes, coerce into array
+ );
+ return \%m;
+
+ }
else {
$self->throw_error( "unsupport relationship type: " . ref($rel) );
}
@@ -410,7 +421,7 @@
sub has_relationship {
my ( $self, $obj, $rel_name ) = @_;
- if (!$obj) {
+ if ( !$obj ) {
$self->throw_error("obj not defined");
}
return $obj->delegate->meta->relationship($rel_name);
More information about the Catalyst-commits
mailing list