创建用于显示验证错误的辅助函数
Create helpers function for displaying validation errors
要在我使用的输入字段后显示验证错误:
<div class="form-group">
{!! Html::decode(Form::label('first_name','First Name:<span class="required">*</span>',['class'=>'control-label col-sm-3'])) !!}
<div class="col-sm-6">
{!! Form::text('first_name',null,['class'=>'form-control']) !!}
@if ($errors->has('first_name'))
<span class="help-block">
<strong>{{ $errors->first('first_name') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
{!! Html::decode(Form::label('last_name','Last Name:<span class="required">*</span>',['class'=>'control-label col-sm-3'])) !!}
<div class="col-sm-6">
{!! Form::text('last_name',null,['class'=>'form-control']) !!}
@if ($errors->has('last_name'))
<span class="help-block">
<strong>{{ $errors->first('last_name') }}</strong>
</span>
@endif
</div>
</div>
// and so on......
此代码完美运行。但是我必须在每个输入框中编写几乎相同的代码。所以,我打算做一个全局函数来显示错误。为此,我做了以下工作。
- 在
app
文件夹中创建一个 helpers.php
编写如下代码:
function isError($name){
if($errors->has($name)){
return '<span class="help-block"><strong>'.$errors->first($name).'</strong></span>';
}
}
运行 composer dump-autoload
以这种方式在 blade 文件中使用它:
<div class="form-group">
{!! Html::decode(Form::label('first_name','First Name:<span class="required">*</span>',['class'=>'control-label col-sm-3'])) !!}
<div class="col-sm-6">
{!! Form::text('first_name',null,['class'=>'form-control']) !!}
{{ isError('first_name') }}
</div>
</div>
<div class="form-group">
{!! Html::decode(Form::label('last_name','Last Name:<span class="required">*</span>',['class'=>'control-label col-sm-3'])) !!}
<div class="col-sm-6">
{!! Form::text('last_name',null,['class'=>'form-control']) !!}
{{ isError('last_name') }}
</div>
</div>
现在,当我转到 create.blade.php
时出现错误
Undefined variable: errors (View: D:\xampp\htdocs\hms\resources\views\guest\create.blade.php)
我知道问题出在 helpers.php
中,因为我没有定义 $errors
,我只是从 blade 文件中粘贴代码。
问题是 $errors
变量在您的辅助方法范围内未定义。
这可以通过将 $errors
object 传递给 isError()
辅助方法来轻松解决。
帮手
function isError($errors, $name){
if($errors->has($name)){
return '<span class="help-block"><strong>'.$errors->first($name).'</strong></span>';
}
}
Blade 模板
{!! isError($errors, 'first_name') !!}
要在我使用的输入字段后显示验证错误:
<div class="form-group">
{!! Html::decode(Form::label('first_name','First Name:<span class="required">*</span>',['class'=>'control-label col-sm-3'])) !!}
<div class="col-sm-6">
{!! Form::text('first_name',null,['class'=>'form-control']) !!}
@if ($errors->has('first_name'))
<span class="help-block">
<strong>{{ $errors->first('first_name') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
{!! Html::decode(Form::label('last_name','Last Name:<span class="required">*</span>',['class'=>'control-label col-sm-3'])) !!}
<div class="col-sm-6">
{!! Form::text('last_name',null,['class'=>'form-control']) !!}
@if ($errors->has('last_name'))
<span class="help-block">
<strong>{{ $errors->first('last_name') }}</strong>
</span>
@endif
</div>
</div>
// and so on......
此代码完美运行。但是我必须在每个输入框中编写几乎相同的代码。所以,我打算做一个全局函数来显示错误。为此,我做了以下工作。
- 在
app
文件夹中创建一个helpers.php
编写如下代码:
function isError($name){ if($errors->has($name)){ return '<span class="help-block"><strong>'.$errors->first($name).'</strong></span>'; } }
运行
composer dump-autoload
以这种方式在 blade 文件中使用它:
<div class="form-group"> {!! Html::decode(Form::label('first_name','First Name:<span class="required">*</span>',['class'=>'control-label col-sm-3'])) !!} <div class="col-sm-6"> {!! Form::text('first_name',null,['class'=>'form-control']) !!} {{ isError('first_name') }} </div> </div> <div class="form-group"> {!! Html::decode(Form::label('last_name','Last Name:<span class="required">*</span>',['class'=>'control-label col-sm-3'])) !!} <div class="col-sm-6"> {!! Form::text('last_name',null,['class'=>'form-control']) !!} {{ isError('last_name') }} </div> </div>
现在,当我转到 create.blade.php
时出现错误
Undefined variable: errors (View: D:\xampp\htdocs\hms\resources\views\guest\create.blade.php)
我知道问题出在 helpers.php
中,因为我没有定义 $errors
,我只是从 blade 文件中粘贴代码。
问题是 $errors
变量在您的辅助方法范围内未定义。
这可以通过将 $errors
object 传递给 isError()
辅助方法来轻松解决。
帮手
function isError($errors, $name){
if($errors->has($name)){
return '<span class="help-block"><strong>'.$errors->first($name).'</strong></span>';
}
}
Blade 模板
{!! isError($errors, 'first_name') !!}