Laravel - сообщение проверки не отображается на лезвии - PullRequest
0 голосов
/ 09 июля 2020

У меня проблемы с отображением сообщений об ошибках проверки. Я попробовал ответить на другие похожие вопросы, но у меня ничего не вышло. Пожалуйста, помогите мне.

Это мой Controller.blade. php

    public function store(Request $request)
    {
        $this->validate($request,[
            'surname'=>['required', 'string', 'max:255'],
            'firstname'=>['required', 'string', 'max:255'],
            'birthday'=>'required',
            'pofbirth'=>['required', 'string', 'max:255'],
            'gender'=>['required', 'numeric'],
            'address'=>['required', 'string', 'max:255'],
            'city'=>['required', 'string', 'max:255'],
            'district'=>['required', 'string', 'max:255'],
            'cap'=>['required', 'string', 'max:255'],
            'cstatus'=>['required', 'string', 'max:255'],
            'conjugated'=>['required', 'string', 'max:255'],
            'cellphone'=>['required', 'numeric'],
            'email'=>['required', 'string', 'email', 'max:255'],
            ]);

Это мой message.blade. php

@if (count($errors) > 0)
  @foreach ($errors->all() as $error)
    <p class="alert alert-danger">{{ $error }}</p>
  @endforeach
@endif

@if (session()->has('message'))

    <p class="alert alert-success">{{ session('message') }}</p>


@endif

Это мой клинок. php

    @include('includes.navbar')
    
    <div class="col" style="background-color: #ffffff;">
        @include('includes.message')
        <form  method="POST" action="{{ route('app.store')}}" enctype="multipart/form-data">
            {{ csrf_field() }}
        <div class="container shadow" style="background-color: rgb(248,249,250);">
            <div class="row">
                <div class="col">
...
...
...

Большое вам спасибо!

1 Ответ

1 голос
/ 09 июля 2020

В вашем методе у вас нет ключа сеанса с именем message, но в вашей проверке нет ключа с именем message:

@if (session()->has('message'))
    <p class="alert alert-success">{{ session('message') }}</p>
@endif

Это будет firstname, surname, gender, age et c (какой ключ вы используете при проверке).
Вот так:

@if($errors->has('firstname'))
    <p class="alert alert-success">{{ $errors->first('firstname') }}</p>
@endif

Получить все сообщение об ошибке:

@if ($errors->any())
   @foreach ($errors->all() as $error)
      <div>{{$error}}</div>
   @endforeach
@endif

Измените валидацию следующим образом:

$validatedData = $request->validate([
        'surname' => 'required|string|max:255',
        'firstname' => 'required|string|max:255',
        'birthday' => 'required',
        'pofbirth' => 'required|string|max:255',
        'gender' => 'required|numeric',
        'address' => 'required|string|max:255',
        'city' => 'required|string|max:255',
        'district' => 'required|string|max:255',
        'cap' => 'required|string|max:255',
        'cstatus' => 'required|string|max:255',
        'conjugated' => 'required|string|max:255',
        'cellphone' => 'required|numeric',
        'email' => 'required|string|email|max:255',
    ]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...