CatalystX::CRUD - CRUD framework for Catalyst applications


This document is an overview of the CatalystX::CRUD framework and API.

CatalystX::CRUD provides a simple and generic API for Catalyst CRUD applications. CatalystX::CRUD is agnostic with regard to data model and data input, instead providing a common API that different projects can implement for greater compatability with one another.

The project was born out of a desire to make Rose::HTML::Objects easy to use with Rose::DB::Object and DBIx::Class ORMs, using the Catalyst::Controller::Rose project. However, any ORM could implement the CatalystX::CRUD::Model API, and any form management project could use the resulting CatalystX::CRUD::Model subclass.


This class provides some basic methods that Model and Object subclasses inherit.

has_errors( context )

Returns true if context error() method has any errors set or if the error value in stash() is set. Otherwise returns false (no errors).

throw_error( msg )

Throws exception using Carp::croak (confess() if CATALYST_DEBUG env var is set). Override to manage errors in some other way.

NOTE that if in your subclass throw_error() is not fatal and instead returns a false a value, methods that call it will, be default, continue processing instead of returning. See fetch() for an example.


Peter Karman, <perl at>


Please report any bugs or feature requests to bug-catalystx-crud at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

    perldoc CatalystX::CRUD

You can also look for information at:


Thanks to Zbigniew Lukasiak and Matt Trout for feedback and API ideas.


Copyright 2007 Peter Karman, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.