NAME

Apache::MVC::Model::Base - Base class for model classes

DESCRIPTION

Anyone subclassing this for a different database abstraction mechanism needs to provide the following methods:

do_edit

If there is an object in $r->objects, then it should be edited with the parameters in $r->params; otherwise, a new object should be created with those parameters, and put back into $r->objects. The template should be changed to view, or edit if there were any errors. A hash of errors will be passed to the template.

retrieve

This turns an ID into an object of the appropriate class.

adopt

This is called on an model class representing a table and allows the master model class to do any set-up required.

This can go either in the master model class or in the individual classes, and returns a list of has-many accessors. A brewery has many beers, so BeerDB::Brewery needs to return beers.

columns

This is a list of the columns in a table.

table

This is the name of the table.

Commands

list

The list method should fill $r-> objects with all of the objects in the class. You may want to page this using Data::Page or similar.

Also, see the exported commands in Apache::MVC::Model::CDBI.

Other overrides

Additionally, individual derived model classes may want to override the following methods:

column_names

Return a hash mapping column names with human-readable equivalents.

description

A description of the class to be passed to the template.