From 117aa299684cb0712cad71985102c34f73b51c99 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Fri, 31 Mar 2017 13:52:15 +0200 Subject: [PATCH] Bug 18361: Koha::Objects->find should accept composite primary keys Content-Type: text/plain; charset=utf-8 Changes the $id parameter to an array. (IssuingRule has three keys.) The build_object method in TestBuilder.pm has been adjusted to pass multiple primary key values to find. Test plan: Run t/db_dependent/Koha/Object.t Run t/db_dependent/Koha/Objects.t Run t/db_dependent/TestBuilder.t Signed-off-by: Marcel de Rooy --- Koha/Objects.pm | 7 ++++--- t/lib/TestBuilder.pm | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Koha/Objects.pm b/Koha/Objects.pm index 86a5789..7e69537 100644 --- a/Koha/Objects.pm +++ b/Koha/Objects.pm @@ -72,15 +72,16 @@ sub _new_from_dbic { my $object = Koha::Objects->find($id); my $object = Koha::Objects->find( { keypart1 => $keypart1, keypart2 => $keypart2 } ); +my $object = Koha::Objects->find($id1, $id2); # composite PK =cut sub find { - my ( $self, $id ) = @_; + my ( $self, @id ) = @_; - return unless defined($id); + return unless @id; - my $result = $self->_resultset()->find($id); + my $result = $self->_resultset()->find(@id); return unless $result; diff --git a/t/lib/TestBuilder.pm b/t/lib/TestBuilder.pm index 6509aee..ce8f601 100644 --- a/t/lib/TestBuilder.pm +++ b/t/lib/TestBuilder.pm @@ -74,7 +74,7 @@ sub build_object { my @ids; foreach my $pk ( @pks ) { - push @ids, { $pk => $hashref->{ $pk } }; + push @ids, $hashref->{ $pk }; } my $object = $class->find( @ids ); -- 2.1.4