package MediaBlogger::Form::Admin::Create_Post; use strict; use warnings; use HTML::FormHandler::Moose; extends 'HTML::FormHandler::Model::DBIC'; with 'HTML::FormHandler::Render::Table'; has '+item_class' => ( default => 'Post' ); has_field 'my_file' => ( type => 'Upload', required => 1 ); has_field 'affiliates' => ( type => 'Select', widget => 'radio_group', multiple => 0, required => 1, options => [{ value => 'new', label => 'New'}, { value => 'old', label => 'Old' }, { value => 'none', label => 'None'} ] ); has_field 'affiliate_link' => ( type => 'Text' ); has_field 'short_affiliate_link' => ( type => 'Text' ); has_field 'title' => ( type => 'Text', required => 1 ); has_field 'description' => ( type => 'Text', required => 1 ); has_field 'submit' => ( type => 'Submit', value => 'Submit' ); has '+dependency' => ( default => sub { [ ['affiliate_link', 'short_affiliate_link'],] } ); before 'validate_form' => sub { my $self = shift; my $required = 0; if( $self->params('affiliates') eq 'new' ) { $required = 1; } $self->field('affiliate_link')->required($required); $self->field('short_affiliate_link')->required($required); }; #### Caught exception in MediaBlogger::Controller::Admin->sets "Attribute (params) does not pass the type constraint because: Validation failed for 'HashRef' failed with value affiliates at C:\Catalyst App2\MediaBlogger\lib/MediaBlogger/Form/Admin/Create_Post.pm line 29 #### if( $self->params('affiliates') eq 'new' ) {