[Catalyst] No database defaults with FormHandler and DBIC

Marc0 catalyst at hidden-primary.net
Mon Oct 31 08:28:21 GMT 2016


Am 31.10.2016 um 09:15 schrieb Marc0:
> Am 31.10.2016 um 08:57 schrieb Martin Rehak:
>> has_field 'capacity' => (type => 'PosInteger',
>>         #default => '1',
>>         label => 'Kapacita');
> 
> maybe add a "lazy => 1" to your commented "default => '1'"?
> 
> has_field q(capacity) => (
>     type    => q(PosInteger),
>     lazy    => 1,
>     default => q(1),
>     label   => q(Kapacita),
> );

maybe "capacity" is explicitely set to undef, you could try an "around"
method modifier to check for a defined value:

has_field q(capacity) => (
    is      => q(ro),           # just guessing
    type    => q(PosInteger),
    lazy    => 1,
    default => q(1),
    label   => q(Kapacita),
    writer  => q(_set_default_capacity),
);

# untested, but according to Moose::Manual::MethodModifiers
around q(has_field) => sub {
    my $orig = shift;
    my $self = shift;

    # check for definedness and set to default value if
    # not defined (NULL)
    $self->_set_default_capacity(1)
        unless defined $self->$orig();

    return $self->$orig();
};

Regards
-- 
Marc0



More information about the Catalyst mailing list