GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  CATALYST::ENZYME::CRUD::CONTROLLER (3)

.ds Aq ’

NAME

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

CONTENTS

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 : Private

Set up the default model and class for this Controller

    set_crud_controller : Private

Set the current Controller and it’s Model class (and the Model’s configuration 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)



Set stash keys:



 crud (to the crud_config)
 controller_namespace (to the Controllers namespace)
 uri_for_list (to a version that accepts array refs from TT)



Return 1.
Usage This action is automatically called by the auto action.

This means that if the user invokes an action in a Controller, the set_crud_controller is called properly and that Controller’s Model class is used. No need to do anything.

If you forward between actions in the same Controller, the same Model class should be used, so no need to do anything.

But if you forward to an action in a different Controller, you need to tell Enzyme to start using the new Model class first. So, going from e.g. the Book Controller to a Genre action, you need to:



    $c->forward("/genre/set_crud_controller");
    $c->forward("/genre/add");



    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.

    delete

Display delete template.

    do_delete

Destroy row and forward to list.

METHODS

    default_dfv

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

crud_config()

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

model_with_pager($c, CW$rows_per_page, CW$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.

template_with_item($template, CW$c, CW$id)

Retrieve object with $id and set the $template. Suitable to call like this in an action (nothing else is needed):



    sub edit : Local {
       shift->template_with_item("edit.tt", @_);
    }



AUTHOR

Johan Lindstrom <johanl AeT cpan.org>

LICENSE

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

POD ERRORS

Hey! <B>The above document had some coding errors, which are explained below:B>
Around line 374: Non-ASCII character seen before =encoding in ’AeT’. Assuming ISO8859-1
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 CATALYST::ENZYME::CRUD::CONTROLLER (3) 2006-01-14

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.