Mojolicious-Plugin-FormFields

 view release on metacpan or  search on metacpan

README.pod  view on Meta::CPAN

    <div id="<%= dom_id($addr->object) %>">
      <h3>Address #<%= $addr->index + 1 %></h3>
      <%= $addr->hidden('id') %>
      ...
    </div>
  <% } %>

=head1 VALIDATING & FILTERING

Validation rules are created by calling validation and/or filter methods
on the field to be validated

  # In your controller
  my $self = shift;
  $self->field('user.name')->is_required;
  $self->field('user.name')->filter('trim');

These methods can be chained

  $self->field('user.name')->is_required->filter('trim');

To perform validation on a field call its C<valid> method

  $field = $self->field('user.name');
  $field->is_required;
  $field->valid;
  $field->error;

This will only validate and return the error for the C<user.name> field. To validate all fields and retrieve all error messages call the controller's C<valid> and C<errors> methods

  $self->field('user.name')->is_required;
  $self->field('user.age')->is_like(qr/^\d+$/);
  $self->valid;

  my $errors = $self->errors;
  $errors->{'user.name'}
  # ...

Of course the C<error>/C<errors> and C<valid> methods can be used in your view too

lib/Mojolicious/Plugin/FormFields.pm  view on Meta::CPAN

	filters => $self->{filters}
    };

    # A bit of massaging For the is_equal() validation
    my $eq = $self->{eq_to_field};
    if($eq) {
	$field->{$eq} = $self->{c}->param($eq);
	push @{$rules->{fields}}, $eq;
    }

    $result = Validate::Tiny::validate($field, $rules);
    $self->{c}->param($name, $result->{data}->{$name}) if @{$self->{filters}};
    $self->{result} = $result;

    $result->{success};
}

sub is_equal
{
    my $self = shift;
    $self->{eq_to_field} = $_[0];

lib/Mojolicious/Plugin/FormFields.pm  view on Meta::CPAN

    <div id="<%= dom_id($addr->object) %>">
      <h3>Address #<%= $addr->index + 1 %></h3>
      <%= $addr->hidden('id') %>
      ...
    </div>
  <% } %>

=head1 VALIDATING & FILTERING

Validation rules are created by calling validation and/or filter methods
on the field to be validated

  # In your controller
  my $self = shift;
  $self->field('user.name')->is_required;
  $self->field('user.name')->filter('trim');

These methods can be chained

  $self->field('user.name')->is_required->filter('trim');

To perform validation on a field call its C<valid> method

  $field = $self->field('user.name');
  $field->is_required;
  $field->valid;
  $field->error;

This will only validate and return the error for the C<user.name> field. To validate all fields and retrieve all error messages call the controller's C<valid> and C<errors> methods

  $self->field('user.name')->is_required;
  $self->field('user.age')->is_like(qr/^\d+$/);
  $self->valid;

  my $errors = $self->errors;
  $errors->{'user.name'}
  # ...

Of course the C<error>/C<errors> and C<valid> methods can be used in your view too

out.html  view on Meta::CPAN

      &#60;h3&#62;Address #&#60;%= $addr-&#62;index + 1 %&#62;&#60;/h3&#62;
      &#60;%= $addr-&#62;hidden(&#39;id&#39;) %&#62;
      ...
    &#60;/div&#62;
  &#60;% } %&#62;</pre>

<h1><a class='u'
name="VALIDATING_&#38;_FILTERING"
>VALIDATING &#38; FILTERING</a></h1>

<p>Validation rules are created by calling validation and/or filter methods on the field to be validated</p>

<pre>  # In your controller
  my $self = shift;
  $self-&#62;field(&#39;user.name&#39;)-&#62;is_required;
  $self-&#62;field(&#39;user.name&#39;)-&#62;filter(&#39;trim&#39;);</pre>

<p>These methods can be chained</p>

<pre>  $self-&#62;field(&#39;user.name&#39;)-&#62;is_required-&#62;filter(&#39;trim&#39;);</pre>

<p>To perform validation on a field call its <code>valid</code> method</p>

<pre>  $field = $self-&#62;field(&#39;user.name&#39;);
  $field-&#62;is_required;
  $field-&#62;valid;
  $field-&#62;error;</pre>

<p>This will only validate and return the error for the <code>user.name</code> field. To validate all fields and retrieve all error messages call the controller&#39;s <code>valid</code> and <code>errors</code> methods</p>

<pre>  $self-&#62;field(&#39;user.name&#39;)-&#62;is_required;
  $self-&#62;field(&#39;user.age&#39;)-&#62;is_like(qr/^\d+$/);
  $self-&#62;valid;

  my $errors = $self-&#62;errors;
  $errors-&#62;{&#39;user.name&#39;}
  # ...</pre>

<p>Of course the <code>error</code>/<code>errors</code> and <code>valid</code> methods can be used in your view too</p>



( run in 1.111 second using v1.01-cache-2.11-cpan-39bf76dae61 )