package MyAppDB::Author; use base qw/DBIx::Class/; # Load required DBIC stuff __PACKAGE__->load_components(qw/PK::Auto Core/); # Set the table name __PACKAGE__->table('authors'); # Set columns in table __PACKAGE__->add_columns(qw/id first_name last_name/); # 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_author => 'MyAppDB::BookAuthor', 'author_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(books => 'book_author', 'book'); =head1 NAME MyAppDB::Author - A model object representing an author of a book (if a book has multiple authors, each will be represented be separate Author object). =head1 DESCRIPTION This is an object that represents a row in the 'authors' 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;