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

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

97

Когда мы создаем веб-сайт на 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 для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее