WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Руководство для начинающих по валидации Laravel

84

Когда мы создаем веб-сайт на Laravel, мы должны знать о валидации Laravel. Laravel предоставляет другой способ проверки ваших входящих данных. В этой статье мы изучаем некоторые основы валидации Laravel.

При создании приложения мы должны в обязательном порядке применять проверки на стороне клиента и на стороне сервера. Таким образом мы сможем защитить наше приложение от ненужных данных. В результате это сэкономит нам много времени, удаляя ненужные данные из приложения.

Сказав это, давайте посмотрим, как применить проверку Laravel в вашем приложении.

Для нашего руководства мы возьмем примерную форму, которая имеет 2 поля: заголовок и описание. Мы применим проверку, и если проверка не удалась, она отобразится в нашем представлении.

Проверка Laravel

Для начала нам нужно включить приведенную ниже инструкцию в наш файл контроллера.

Поместите этот оператор перед началом вашего контроллера, как показано ниже.

<?php
 
namespace AppHttpControllers;
 
use IlluminateHttpRequest;
use Validator;
 
class PostController extends Controller
{
   .....
}

Прежде чем писать фактический код проверки, давайте перейдем к файлу представления. Создаем простую форму с 2 полями заголовок и описание.

<form action="{{ url('post') }}" method="post">
  <div class="form-group">
      <label for="exampleInputTitle">Post Title</label>
      <input type="text" name="title" id="exampleInputTitle" />
  </div>
  <div class="form-group">
      <label for="exampleInputBody">Post Body</label>
      <textarea class="form-control" name="body" id="exampleInputBody" rows="10"></textarea>
  </div>
  {{ csrf_field() }}
  <button type="submit" class="btn btn-default">Submit</button>
</form>

Когда мы отправляем форму, она вызывает store()метод нашего контроллера. В вашем случае, возможно, ваш метод другой. Итак, в нашем методе мы напишем код проверки следующим образом.

public function store(Request $request)
{
    $validator = Validator::make($request->all(), [
        'title' => 'required|max:255',
        'body' => 'required',
    ]);
 
    if ($validator->fails()) {
        return redirect('post/create')
                    ->withErrors($validator)
                    ->withInput();
    }
 
    //safe to proceed form
}

Вы можете заметить, что мы передали два ключа title и body. Это названия наших элементов формы. Здесь Laravel проверяет, не являются ли оба поля пустыми и не превышают ли поля заголовка 255 символов.

Если какая-либо из проверок не удалась, пользователь перенаправит на страницу, которую мы передали методу redirect().

Отображение сообщений об ошибках в представлении

Мы применили проверку на стороне сервера. Теперь давайте посмотрим, как отображать сообщения об ошибках.

Допустим, в нашем случае проверка не удалась, и теперь нам нужно отображать сообщения об ошибках в нашей форме. Есть 2 способа отобразить ошибки в представлениях Laravel. Во-первых, мы можем отображать все сообщения об ошибках вместе в верхней части формы. Второй способ – отображать его рядом с каждым полем, в котором есть ошибка.

Чтобы отобразить сообщение об ошибке вверху формы, добавьте приведенный ниже код над тегом формы.

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

Этот код отобразит сообщение об ошибке, как показано на снимке экрана ниже:

Во втором – выводить сообщение об ошибке после каждого поля. В этом случае наш код выглядит следующим образом:

<div class="form-group">
   <label for="exampleInputTitle">Post Title</label>
   <input type="text" name="title" id="exampleInputTitle" />
   @if ($errors->has('title'))
       <span class="error">
           {{ $errors->first('title') }}
       </span>
   @endif
 
</div>
<div class="form-group">
   <label for="exampleInputBody">Post Body</label>
   <textarea class="form-control" name="body" id="exampleInputBody" rows="10"></textarea>
   @if ($errors->has('body'))
       <span class="error">
           {{ $errors->first('body') }}
       </span>
   @endif
</div>

Обратите внимание, что мы используем, @if ($errors->has('title'))чтобы проверить, есть ли в поле «заголовок» ошибка проверки. Если в этом поле есть ошибка, мы печатаем ее, используя {{ $errors->first('title') }}. Ту же логику мы применили для поля body. Взгляните на приведенный ниже снимок экрана этого типа.

Мы надеемся, что вы понимаете, как применять проверку Laravel в своем приложении. Пожалуйста, поделитесь своими мыслями в разделе комментариев ниже.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее