Changeset 1564 for trunk


Ignore:
Timestamp:
12/30/15 13:56:53 (9 years ago)
Author:
nanardon
Message:

Always return array is attribute is multivalued

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Attributes.pm

    r1530 r1564  
    441441 
    442442    if (defined($self->object)) { 
    443         if (ref($self->{get}) eq 'CODE') { 
    444             return $self->{get}->($self); 
     443        my $res = (ref($self->{get}) eq 'CODE') 
     444            ? $self->{get}->($self) 
     445            : $self->object->get_field($self->iname); 
     446 
     447        # always return undef if empty 
     448        # and an array if attribute is multivalued 
     449        if (!$res) { 
     450            return undef; 
     451        } elsif (ref $res) { 
     452            return @{$res} ? $res : undef; 
     453        } elsif ($self->multiple) { 
     454            return ref $res ? $res : [$res] 
    445455        } else { 
    446             return $self->object->get_field($self->iname); 
     456            return $res; 
    447457        } 
    448458    } else { 
Note: See TracChangeset for help on using the changeset viewer.