[Catalyst] C::C::FormBuilder debug noise...
RA Jones
ra.jones at dpw.clara.co.uk
Mon May 7 10:14:26 GMT 2007
Marcello Romani wrote:
> RA Jones ha scritto:
>> It looks like your output is showing both debug1 and debug2 levels,
>> which suggests your fb config settings are not being used. Did you place
>
> That's what I thought too.
>
> Where do you put the "debug" option ?
>
> I tried this:
>
> package MyApp::Controller::FBConfig;
>
> use strict;
> use warnings;
>
> use base qw/Catalyst::Controlloer::FormBuilder/;
>
> sub new {
> my $class = shift;
> my $self = $class->SUPER::new(@_);
> $self->{debug} = 0;
> return 0;
> }
>
> 1;
>
> But of course it doesn't work. Could you post (some of) your code ?
>
> Thanks you very much.
>
As I indicated previously, I have a sub-class of CCF containing
formbuilder configuration settings (and more) which is a parent class
for all my (formbuilder-using) controllers. So:
package MyApp::Controller::ClassThatUsesFormBuilder;
use lib '/path/to/my/perl-lib';
use base qw/My::Formbuilder/; # configures CCF;
sub build_form : Local Form('/users') {
my ($self, $c) = @_;
my $form = $self->build_user_form($c); # in My::Formbuilder
# etc;
}
package My::Formbuilder;
use base qw/Catalyst::Controller::FormBuilder/;
__PACKAGE__->config(
'Controller::FormBuilder' => {
new => {
debug => 0,
# ^^^^^^^^^^ debug settings here
messages => {
# override default messages go here,
},
validate => {
# complex validation routines here
}
}
stash_name => 'fb', # ie fb.field.some_field.value in TT
},
);
sub build_user_form {
my ($self, $c) = @_;
my $form = $self->formbuilder;
# fields requiring complexity not available to .fb source file:
$form->field(
name => 'some_field',
options => [
map [ $_->id, $_->location ],
$c->model('Schema::Location')->search({},
{ order_by => 'location'} )
],
);
return $form;
}
Not only does this work, but I find it more convenient specifying
formbuilder config options in one place rather than in every controller
that uses CCF. Hope it works for you.
--
Richard Jones
Leeds, UK
More information about the Catalyst
mailing list