CatalystX-CRUD
view release on metacpan or search on metacpan
lib/CatalystX/CRUD/Controller.pm view on Meta::CPAN
package CatalystX::CRUD::Controller;
use Moose;
BEGIN {
extends qw(
CatalystX::CRUD
Catalyst::Controller
);
}
use Carp;
use Catalyst::Utils;
use CatalystX::CRUD::Results;
use MRO::Compat;
use mro 'c3';
use Data::Dump qw( dump );
use Try::Tiny;
__PACKAGE__->mk_accessors(
qw(
model_adapter
form_class
init_form
init_object
model_name
model_meta
default_template
primary_key
allow_GET_writes
naked_results
page_size
view_on_single_result
)
);
__PACKAGE__->config(
primary_key => 'id',
view_on_single_result => 0,
page_size => 50,
allow_GET_writes => 0,
naked_results => 0,
);
# apply Role *after* we declare accessors above
with 'CatalystX::CRUD::ControllerRole';
our $VERSION = '0.58';
=head1 NAME
CatalystX::CRUD::Controller - base class for CRUD controllers
=head1 SYNOPSIS
# create a controller
package MyApp::Controller::Foo;
use strict;
use base qw( CatalystX::CRUD::Controller );
__PACKAGE__->config(
form_class => 'MyForm::Foo',
init_form => 'init_with_foo',
init_object => 'foo_from_form',
default_template => 'path/to/foo/edit.tt',
model_name => 'Foo',
model_adapter => 'FooAdapter', # optional
model_meta => { moniker => 'SomeTable' }, # optional
primary_key => 'id',
view_on_single_result => 0,
page_size => 50,
allow_GET_writes => 0,
naked_results => 0,
);
1;
# now you can manage Foo objects using your MyForm::Foo form class
( run in 0.682 second using v1.01-cache-2.11-cpan-39bf76dae61 )