В моем приложении laravel ошибки проверки не отображаются в представлении.Как я могу этого достичь? - PullRequest
0 голосов
/ 02 июня 2019

Я использую Laravel Framework 5.8.15. Я проверяю некоторые из моих входных данных формы. После сбоя валидатора, он перенаправляет меня обратно в представление, но не отображает никаких ошибок.

Мой контроллер:

public function store(Request $request)
    {
        $this->validate($request, [
            'donator_first_name' => 'required|alpha|max:50',
            'donator_middle_name' => 'required|alpha|max:50',
            ]);

            donations::create([
              'donator_first_name' => $request->get('donator_first_name'),
              'donator_middle_name'=> $request->get('donator_middle_name')
            ]);

            return back()->with('success', 'You have just created one item');
    }

Моя форма:

<div class="form-group">
                <label>Donator's Surname: </label>
                <input class="form-control"  id="donator_last_name" name="donator_last_name"  placeholder="Enter Surname" required>
            </div>


            <div class="form-group">
                <label>Donator's First Name: </label>
                <input class="form-control" id="donator_first_name" name="donator_first_name" placeholder="Enter First Name" required>
            </div>


            <div class="form-group">
                <label>Donator's Father's Name: </label>
                <input class="form-control" id="donator_middle_name" name="donator_middle_name" value="{{ old('donator_middle_name') }}" placeholder="Enter Father's Name" required>
            </div>

Мой взгляд:

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

          @if (\Session::get('success'))
              <div class="alert alert-success">
                  <p>{{ \Session::get('success') }}</p>
              </div>
          @endif

Ответы [ 2 ]

1 голос
/ 02 июня 2019

Кажется, все в порядке с вашим кодом. не забудьте добавить {{csrf_field ()}} в форму.

на виду попробуйте это:

 @if (count($errors) > 0)
                                    <div class="alert alert-danger alert-dismissible" role="alert">
                                        <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span>
                                        </button>
                                        <strong>Error!</strong> 
                                        @foreach ($errors->all() as $error)
                                            <p>{{ $error }}</p>
                                            @endforeach
                                        </div>
                                        @endif

                                        @if(session('success'))
                                        <div class="alert alert-info alert-dismissible" role="alert">
                                            <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span>
                                            </button>
                                            <strong>Successfull!</strong> 
                                            {{ session('success') }}
                                        </div>                        
                                       @endif

                                        @if(session('wrong'))
                                        <div class="alert alert-danger alert-dismissible" role="alert">
                                            <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span>
                                            </button>
                                            <strong>Error!</strong> 
                                            {{ session('wrong') }}
                                        </div>                        
                                       @endif

тогда ваш контроллер попробуйте это:

return redirect("urlpath")->with('success','You have just created one item');
0 голосов
/ 04 июня 2019

Я вызывал API в форме отправки действия. И именно поэтому я не смог получить сессий на мой взгляд.

...