package Check::Model;
use strict; use warnings;
use base 'DBIx::Class::Schema';
__PACKAGE__->load_classes( qw/ Check Status / );
1;
####
package Check::Model::Check;
use base 'DBIx::Class';
__PACKAGE__->load_components( 'Core' );
__PACKAGE__->table( 'checks' );
__PACKAGE__->add_columns( qw/ id status descr / );
__PACKAGE__->set_primary_key( qw/ id / );
__PACKAGE__->belongs_to( status => 'Check::Model::Status' );
1;
package Check::Model::Status;
use base 'DBIx::Class';
__PACKAGE__->load_components( 'Core' );
__PACKAGE__->table( 'status' );
__PACKAGE__->add_columns( qw/ id descr / );
__PACKAGE__->set_primary_key( qw/ id / );
1;
####
#!/usr/bin/perl
use strict;
use warnings;
use Check::Model;
my $schema = Check::Model->connect(
'dbi:SQLite:dbname=checks', '', ''
);
my $check = $schema->resultset('Check')->find( 1 );
my $status = $check->status->descr;
print "status: $status\n"; # prints: 'status: Outstanding'
$check->update( { status => 2 } );
$status = $check->status->descr;
print "status: $status\n"; # also prints: 'status: Outstanding'
$check = $schema->resultset( 'Check' )->find( 1 );
$status = $check->status->descr;
print "status: $status\n"; # prints: 'status: Cleared'