package Maypole::Model::CDBI;
use strict;
+use Data::Dumper;
+
=head1 NAME
Maypole::Model::CDBI - Model class based on Class::DBI
# update or create
if ($obj) {
# We have something to edit
- eval { $obj->update_from_cgi( $r => {
+ eval { $obj->update_from_cgi( $h => {
required => $required_cols,
ignore => $ignored_cols,
});
$fatal = $@;
} else {
eval {
- $obj = $self->create_from_cgi( $r => {
+ $obj = $self->create_from_cgi( $h => {
required => $required_cols,
ignore => $ignored_cols,
} );
# sub _column_info {
sub _column_info {
my $self = shift;
- warn "__column_info called by ", join (', ', caller), "\n";
my $dbh = $self->db_Main;
my $meta; # The info we are after
# required / nullable
$meta->{$colname}{nullable} = $row->{NULLABLE};
-
- $meta->{$colname}{required} = ($row->{NULLABLE} && $row->{NULLABLE} == 0) ? 1 : 0;
+ $meta->{$colname}{required} = ( $meta->{$colname}{nullable} == 0 ) ? 1 : 0;
# default
if (defined $row->{COLUMN_DEF}) {
my ($class, $columns) = @_;
$class->_column_info() unless ref $class->COLUMN_INFO;
my $column_info = $class->COLUMN_INFO;
+
if ($columns) {
foreach my $colname ( @$columns ) {
if ($class->_isa_class($colname)) {
warn "$colname is not a recognised column in this class ", ref $class || $class, "\n";
next;
}
- $column_info->{required} = 1;
+ $column_info->{$colname}{required} = 1;
}
$class->COLUMN_INFO($column_info);
}
- return [ grep ($column_info->{$_}{required}, keys %{$column_info}) ] ;
+ return [ grep ($column_info->{$_}{required}, keys %$column_info) ] ;
}
=head2 column_required