NAME

Catalyst::Controller::CRUD - CRUD (create/read/update/delete) Controller for Catalyst

SYNOPSIS

  package MyApp::Controller::Foo;
  
  use base qw(Catalyst::Controller);
  use Catalyst::Controller::CRUD::CDBI;
  
  sub create : Local {
    my ($self, $c) = @_;
    Catalyst::Controller::CRUD::CDBI->create($c, $self);
  }
  
  1;

DESCRIPTION

This module provides CRUD (create/read/update/delete) action.

 create: insert new record
 read:   retrieve record
 update: update already record
 delete: delete record
 list:   retrieve all records

EXPORT

None by default.

METHODS

create

create action.

if $c->stash->{create}->{error}, then do not insert new recoed.

triggers:

 $self->call_trigger( 'input_before', $c );
 $self->call_trigger( 'create_check', $c, $hash );
 $self->call_trigger( 'create_after', $c, $model );

read

read action.

update

update action.

if $c->stash->{update}->{error}, then do not update already recoed.

triggers:

 $self->call_trigger( 'input_before', $c );
 $self->call_trigger( 'update_check', $c, $model );
 $self->call_trigger( 'update_after', $c, $model );

delete

delete action.

if $c->stash->{delete}->{error}, then do not delete recoed.

triggers:

 $self->call_trigger( 'delete_check', $c, $model );
 $self->call_trigger( 'delete_after', $c, $model );

list

list action.

INTERFACE METHODS

model_to_hashref($this,$model)

translate model object to hash reference. this method must be implemented by sub class.

get_model($this,$c,$self,$id)

return model from $id. this method must be implemented by sub class.

get_models($this,$c,$self)

return all models. this method must be implemented by sub class.

INTERNAL METHODS

_do_create($this,$c,$self)

insert new record.

_prepare_copy($this,$c,$self)

prepare for /xxx/create/yyy.

_do_update($this,$c,$self)

update already record.

SEE ALSO

Catalyst, Catalyst::Plugin::CRUD

AUTHOR

Jun Shimizu, <bayside@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2006,2007 by Jun Shimizu

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.2 or, at your option, any later version of Perl 5 you may have available.