От автора: в Laravel валидация является наиболее важным аспектом при разработке приложения. С ее помощью проверяются входящие данные. По умолчанию класс базового контроллера использует свойство ValidatesRequests, которое обеспечивает удобный способ проверки входящих HTTP-запросов с помощью множества мощных правил проверки.
Доступные правила валидации Laravel
Laravel автоматически проверяет наличие ошибок в данных сессии и связывает их с определенным типом, если он доступен. Поэтому важно помнить, что переменная $errors всегда доступна для всех ваших представлений по каждому запросу. Таким образом, вы знаете, что переменная $errors всегда определена и может быть безопасно использована. Переменная $errors является экземпляром Illuminate\Support\MessageBag. Сообщение об ошибке может быть отображено в файле представления с помощью добавления кода, как показано ниже.
1 2 3 4 5 6 7 8 9 |
@if (count($errors) > 0) <div class = "alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif |
Пример
Шаг 1. Создайте контроллер с именем ValidationController, выполнив следующую команду.
1 |
php artisan make:controller ValidationController --plain |
Шаг 2 — После выполнения данной команды вы получите следующий результат:
Шаг 3 — Скопируйте в файл app/Http/Controllers/ValidationController.php следующий код.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?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 и скопируйте в этот файл следующий код.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<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/routes.php.
1 2 |
Route::get('/validation','ValidationController@showform'); Route::post('/validation','ValidationController@validateform'); |
Шаг 6 – Перейдите по следующему URL-адресу, чтобы проверить валидацию. //localhost:8000/validation
Шаг 7 — Нажмите кнопку «Login», не вводя ничего в текстовое поле. В результате должны вы увидеть на экране следующее.
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.