[Dbix-class] How can I get default values for a new row
    RAPPAZ Francois 
    francois.rappaz at unifr.ch
       
    Wed Apr  9 14:19:22 GMT 2014
    
    
  
I use the following to create a new row in my table:
(@{$self->{primary_keys}} is an array of the primary key's names for the table)
When a new_row button is pressed:
my %hash   = map { $_, undef } @{$self->{primary_keys}};
my $row = $rs->new_result(\%hash);
$self->{new_row} = $row;
And latter
$row->set_column($id, $value); # for those fields the user has a value to enter in
And then, when an Apply button is pressed
$row = $self->{new_row};
$result = $row->insert;
My problem is that I have a check box for example, that can't have a null value, its default value is 0 and it appears as uncheck on the GUI, however it is saved as undef and this generates an error. 
In the module for the table it is defined as  { data_type => "tinyint", default_value => 0, is_nullable => 0 },
The workaround is to check the box, save the row, and uncheck it before saying  $row->update
But I wonder if there is something more elegant...
Thanks
François 
    
    
More information about the DBIx-Class
mailing list