—package
MyAppDB::Book;
# Load required DBIC stuff
__PACKAGE__->load_components(
qw/PK::Auto Core HTMLWidget/
);
# Set the table name
__PACKAGE__->table(
'books'
);
# Set columns in table
__PACKAGE__->add_columns(
qw/id title rating/
);
# Set the primary key for the table
__PACKAGE__->set_primary_key(
qw/id/
);
#
# Set relationships:
#
# has_many():
# args:
# 1) Name of relationship, DBIC will create accessor with this name
# 2) Name of the model class referenced by this relationship
# 3) Column name in *foreign* table
__PACKAGE__->has_many(
book_authors
=>
'MyAppDB::BookAuthor'
,
'book_id'
);
# many_to_many():
# args:
# 1) Name of relationship, DBIC will create accessor with this name
# 2) Name of has_many() relationship this many_to_many() is shortcut for
# 3) Name of belongs_to() relationship in model class of has_many() above
# You must already have the has_many() defined to use a many_to_many().
__PACKAGE__->many_to_many(
authors
=>
'book_authors'
,
'author'
);
=head1 NAME
MyAppDB::Book - A model object representing a book.
=head1 DESCRIPTION
This is an object that represents a row in the 'books' table of your application
database. It uses DBIx::Class (aka, DBIC) to do ORM.
For Catalyst, this is designed to be used through MyApp::Model::MyAppDB.
Offline utilities may wish to use this class directly.
=cut
1;