Я не могу отправлять ошибки контроллера для просмотра в laravel

#php #laravel

#php #laravel

Вопрос:

когда мне удается распечатать в индексном представлении каталога накладных, что было отправлено контроллером, что-то было не так при отправке возврата.

Вернуть контроллер

  return view('albaranes/index',['errors','NOOOOO']);
  

Сбор данных на блейде

 @if ($errors->any())

<div class="alert alert-danger">
    <ul>
        @foreach ($errors->all() as $error)
            <li>{{ $error }}</li>
        @endforeach
    </ul>
</div>

@endif
  

Ответ №1:

попробуйте withErrors()

вам нужно выполнить повторный запуск с ошибкой

 return Redirect::back()->withErrors(['errors' => 'NOOOOO']);
  

или, если вы хотите передать как данные, тогда

 return view('albaranes/index')->with(['errors','NOOOOO']);
  

в блейде

 @if ($errors)

<div class="alert alert-danger">
    <ul>
      {{ $errors }} // as it is not array as u mention 
    </ul>
</div>

@endif
  

Ответ №2:

Вы должны попробовать это, возможно, это будет полезно для вас

 $errors = ['You do not have sufficient permissions to access this page.'];

return view('albaranes/index',compact('errors'));
  

затем в блейд-файле

 @if (count($errors))

<div class="alert alert-danger">
    <ul>
        @foreach ($errors as $error)
            <li>{{ $error }}</li>
        @endforeach
    </ul>
</div>

@endif
  

Ответ №3:

Я думаю, проблема в том, что вы неправильно задаете массив, попробуйте этот способ:

 return view('albaranes/index',['errors' =>'NOOOOO']);
  

даже если это $errors будет строка, а не массив, вы могли бы попробовать:

 return view('albaranes/index',['errors'=>['error1', 'error2']]);
  

Вам придется заменить методы any() и all() на методы для массивов, например:

 @if (count($errors)>0)

<div class="alert alert-danger">
    <ul>
        @foreach ($errors as $error)
            <li>{{ $error }}</li>
        @endforeach
    </ul>
</div>

@endif
  

и это должно сработать, я попробовал, и он печатает список.

Комментарии:

1. При использовании вашего кода в контроллере я получаю следующую ошибку: вызов функции-члена any() в массиве

2. Он по-прежнему не работает, но может ли быть так, что, будучи уже на странице доставки индексного представления, он работает плохо?

3. дело в том, что мне не нужно перезагружать страницу, поэтому у меня много возвращаемого просмотра, извините за плохое объяснение

4. хорошо, я нашел это, просто подавите all() , я отредактирую свой ответ