The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Catalyst::Enzyme::CRUD::Controller - CRUD Controller Base Class with CRUD support

SYNOPSIS

See Catalyst::Enzyme

PROPERTIES

model_class

The model class, overloaded by you in each controller class to return the actual class name for the Model this controller should handle.

So in your Controller classes, something like this is recommended:

    sub model_class {
        return("BookShelf::Model::BookShelfDB::Genre");
    }

METHODS - ACTIONS

These are the default CRUD actions.

You should read the source so you know what the actions do, and how you can adjust or block them in your own code.

They also deal with form validation, messages, and errors in a certain way that you could use (or not, you may have a better way) in your own Controller actions.

auto

Set up the default model and class for this Controller

default

Forward to list.

list

Display list template

view

Select a row and display view template.

add

Display add template

do_add

Add a new row and redirect to list.

edit

Display edit template.

do_edit

Edit a row and redirect to edit.

destroy

Destroy row and forward to list.

METHODS

default_dfv

Return hash ref with a default Data::FormValidator config.

run_safe($c, $sub, $fail_action, $fail_message, @rest)

Run the $sub->(@rest) ref inside an eval cage, and return 1.

Or, if $sub dies, set stash->{message} to $fail_message, stash->{error} to $@, log the error, shed a tear, and return 0.

set_model_class($c)

Set the Model class and it's configuration for the Controller using the model_class().

Point $self->crud_config to the Model's config->{crud}. Set crud_config keys:

 model_class
 model
 moniker (default)
 rows_per_page (default 20)
 column_monikers (default)

Return 1.

crud_config()

Return hash ref with config values form the Model class' config->{crud} (so model_class needs to be set).

class_to_moniker($class_name)

Return default moniker of $class_name.

Default is to take the last past of the $class_name, and split it on lower/uppercase boundaries.

If one can't be figured out, return the $class_name.

model_with_pager($c, $rows_per_page, $page)

Return either the current model class, or (if $rows_per_page > 0) a pager for the current model class. $page indicates which page to display in the pager (default to the first page).

Assign the pager to $c->stash->{pager}.

The Model class (or it's base class) must use Class::DBI::Pager.

AUTHOR

Johan Lindstrom <johanl ÄT cpan.org>

LICENSE

This library is free software . You can redistribute it and/or modify it under the same terms as perl itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 358:

Non-ASCII character seen before =encoding in 'ÄT'. Assuming CP1252