1

Чтобы отобразить ошибки проверки после того, как поле ввода I с помощью:Создать хелперов Funcition для отображения ошибок проверки

<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...... 

Этот код работает отлично. Но я должен написать почти такой же код в каждом окне ввода. Итак, я планировал сделать глобальную функцию для отображения ошибок. Для этого я сделал следующее.

  1. Создать helpers.php внутри app папки с
  2. Написать следующий код:

    function isError($name){ 
        if($errors->has($name)){ 
         return '<span class="help-block"><strong>'.$errors->first($name).'</strong></span>'; 
        } 
    } 
    
  3. пробег composer dump-autoload

  4. использовал его в файл лезвия таким образом:

    <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 переменной: ошибки (Вид: D: \ XAMPP \ HTDOCS \ HMS \ ресурсы \ вид \ гостевой \ create.blade.php)

Я знаю, что проблема заключается в helpers.php, потому что я не определил $errors, я просто вставить этот код из файла лезвия.

Любая помощь будет заметна. Заранее спасибо.

+0

'$ errors' не определен в вашем помощнике. Вы должны передать объект ошибок функции 'isError()'. Например, 'isError ($ errors, last_name ')'. – Jeemusu

+1

@Jeemusu Ницца идея. Я попробую. – smartrahat

+0

@Jeemusu Да, это сработало. Кроме того, я изменил в лезвии '{!! isError ($ errors, 'first_name') !!} ', чтобы избежать тега html. Можете ли вы дать ему ответ, чтобы я мог его принять? – smartrahat

ответ

3

Проблема заключается в том, что переменная $errors не определена в рамках вашего вспомогательного метода.

Это можно легко решить, передав объект $errors на вспомогательный метод isError().

Helper

function isError($errors, $name){ 
    if($errors->has($name)){ 
     return '<span class="help-block"><strong>'.$errors->first($name).'</strong></span>'; 
    } 
} 

клинка Шаблон

{!! isError($errors, 'first_name') !!}