将Form :: text和错误检查合并为一个?

时间:2015-01-21 12:26:52

标签: laravel laravel-4

在刀片视图文件中,我有类似这样的内容:

  {{ Form::text('contact_name', null, ['class' => 'form-control']) }}
    @if ($errors->has('contact_name')) 
        <div class="error-block">{{ $errors->first('contact_name') }}</div>
    @endif


    {{ Form::text('contact_email', null, ['class' => 'form-control']) }}
    @if ($errors->has('contact_email')) 
        <div class="error-block">{{ $errors->first('contact_email') }}</div>
    @endif

当用户按提交时,它将检查控制器中的输入验证。但是,如果验证出错,则会将其重定向回表单并使用错误消息填充{{ $errors->first() }}

有没有办法在视图文件中排除{{ $errors->first() }},如果验证失败,仍会显示错误消息?那么将Form::text$errors->has合并到一个函数或类似的东西中?

1 个答案:

答案 0 :(得分:2)

使用Form Macro执行此操作

Form::macro('myText', function($field)
{
    $string = Form::text($field, null, ['class' => 'form-control']);
    if ($errors->has($field)) {
         $string .= $errors->first($field);
    }

    return $string;
});

然后在你看来

{{ Form::myText('contact_email') }}