Учебники

Laravel — валидация

Валидация является наиболее важным аспектом при разработке приложения. Он проверяет поступающие данные. По умолчанию базовый класс контроллера использует черту ValidatesRequests, которая предоставляет удобный метод для проверки входящих HTTP-запросов с помощью множества мощных правил проверки.

Доступные правила проверки в Laravel

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

Доступные правила проверки в Laravel
Принято Активный URL После (Дата)
Альфа Альфа Дэш Альфа Числовой
массив До (Дата) Между
логический подтвердил Дата
Формат даты Разные Digits
Цифры между Эл. почта Существует (база данных)
Файл изображения) В целое число
Айпи адрес JSON Максимум
MIME Типы (Файл) Min Не в
числовой Регулярное выражение необходимые
Требуется, если Требуется, если только Требуется с
Требуется со всеми Требуется без Требуется без всего
Так же Размер строка
Часовой пояс Уникальный (База данных) URL

Переменная $ errors будет экземпляром Illuminate \ Support \ MessageBag . Сообщение об ошибке может быть отображено в файле представления, добавив код, как показано ниже.

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

пример

Шаг 1 — Создайте контроллер под названием ValidationController , выполнив следующую команду.

php artisan make:controller ValidationController --plain

Шаг 2 — После успешного выполнения вы получите следующий вывод —

ValidationController

Шаг 3 — Скопируйте следующий код в

Файл app / Http / Controllers / ValidationController.php .

приложение / Http / Контроллеры / ValidationController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class ValidationController extends Controller {
   public function showform() {
      return view('login');
   }
   public function validateform(Request $request) {
      print_r($request->all());
      $this->validate($request,[
         'username'=>'required|max:8',
         'password'=>'required'
      ]);
   }
}

Шаг 4 — Создайте файл представления с именем resources / views / login.blade.php и скопируйте следующий код в этот файл.

ресурсы / виды / login.blade.php

<html>
   
   <head>
      <title>Login Form</title>
   </head>

   <body>
      
      @if (count($errors) > 0)
         <div class = "alert alert-danger">
            <ul>
               @foreach ($errors->all() as $error)
                  <li>{{ $error }}</li>
               @endforeach
            </ul>
         </div>
      @endif
      
      <?php
         echo Form::open(array('url'=>'/validation'));
      ?>
      
      <table border = '1'>
         <tr>
            <td align = 'center' colspan = '2'>Login</td>
         </tr>
         <tr>
            <td>Username</td>
            <td><?php echo Form::text('username'); ?></td>
         </tr>
         <tr>
            <td>Password</td>
            <td><?php echo Form::password('password'); ?></td>
         </tr>
         <tr>
            <td align = 'center' colspan = '2'
               ><?php echo Form::submit('Login'); ?  ></td>
         </tr>
      </table>
      
      <?php
         echo Form::close();
      ?>
   
   </body>
</html>

Шаг 5 — Добавьте следующие строки в app / Http / rout.php .

приложение / Http / routes.php

Route::get('/validation','ValidationController@showform');
Route::post('/validation','ValidationController@validateform');

Шаг 6 — Посетите следующий URL для проверки правильности.

http://localhost:8000/validation

Шаг 7 — Нажмите кнопку «Войти» , не вводя ничего в текстовое поле. Вывод будет таким, как показано на следующем рисунке.