2014-07-02 118 views
0

我使用parsley.js客户双面验证,也想用它为服务器双面验证(Laravel表单验证)显示错误使用欧芹造型。所以它是统一的。Parsley.js和Laravel校验错误

因此,只要我的服务器端验证失败,我想显示与正确字段相关的特定错误。我不想使用远程库。

有没有一个例子如何做到这一点?

链接:Laravel ValidatorParsley

非常感谢您!

回答

1

你可以做这样的事情:

<div> 
    {{ Form::open(['route' => 'dashboard.testform', 'id' => 'testForm']) }} 
    <div class="form-group row"> 
     {{ Form::label('field1', 
      'Field 1', 
      ['class' => 'col-xs-2'] 
     ) }} 
     <div class="col-xs-10"> 
      <?= Form::text('field1', null, ['class' => 'col-xs-12 required ' . ($errors->has('field1') ? 'parsley-error' : '') ]) ?> 
      @if ($errors->has('field1')) 
       <ul class="parsley-errors-list filled"> 
        {{ $errors->first('field1', '<li class="parsley-required">:message</li>') }} 
       </ul> 
      @endif 
     </div> 
    </div> 
    <div class="form-group row"> 
     {{ Form::label('field2', 'Field 2', ['class' => 'col-xs-2']) }} 
     <div class="col-xs-10"> 
      <?= Form::text('field2', null, ['class' => 'col-xs-12 ' . ($errors->has('field2') ? 'parsley-error' : '') ]) ?> 
      @if ($errors->has('field2')) 
       <ul class="parsley-errors-list filled"> 
        {{ $errors->first('field2', '<li class="parsley-required">:message</li>') }} 
       </ul> 
      @endif 
     </div> 
    </div> 
    <div class="form-group row"> 
     {{ Form::label('field3', 'Field 3', ['class' => 'col-xs-2']) }} 
     <div class="col-xs-10"> 
      <?= Form::text('field3', null, ['class' => 'col-xs-12 required ' . ($errors->has('field3') ? 'parsley-error' : '') ]) ?> 
      @if ($errors->has('field3')) 
       <ul class="parsley-errors-list filled"> 
        {{ $errors->first('field3', '<li class="parsley-required">:message</li>') }} 
       </ul> 
      @endif 
     </div> 
    </div> 
    {{ Form::submit('Submit form', ['class' => 'btn btn-primary']) }} 
    {{ Form::close() }} 
</div> 

{{ HTML::style('http://parsleyjs.org/src/parsley.css') }} 
{{ HTML::script('http://code.jquery.com/jquery-1.11.1.min.js') }} 
{{ HTML::script('http://parsleyjs.org/dist/parsley.min.js') }} 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#testForm").parsley(); 
    }); 
</script> 

而且你的控制器看起来就像这样:

public function testform() { 
    $rules = array(
     'field1' => 'date', 
     'field2' => 'required' 
    ); 

    $validator = Validator::make(
     Input::all(), 
     $rules 
    ); 
    if ($validator->fails()) { 
     return Redirect::back()->withErrors($validator); 
    } 

    return Redirect::back(); 
} 

这可能是一个好主意,以创建一个custom Form Macro是回声的输入错误,如果存在。这样你的观点被简化了。