Laravel (5.7) Валидация
Валидация является наиболее важным аспектом при разработке приложения. Он проверяет поступающие данные. По умолчанию базовый класс контроллера использует черту ValidatesRequests, которая предоставляет удобный метод для проверки входящих HTTP-запросов с помощью множества мощных правил проверки.
Доступные правила проверки в Laravel
Laravel всегда проверяет наличие ошибок в данных сеанса и автоматически связывает их с представлением, если они доступны. Таким образом, важно отметить, что переменная $ errors всегда будет доступна во всех ваших представлениях при каждом запросе, что позволяет вам удобно предполагать, что переменная $ errors всегда определена и может безопасно использоваться.
Переменная $ errors будет экземпляром IlluminateSupportMessageBag . Сообщение об ошибке можно отобразить в файле представления, добавив код, как показано ниже.
@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
Шаг 2. Скопируйте следующий код в файл 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'
]);
}
}
Шаг 3 - Создайте файл вида с именем
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>
Шаг 4 - Добавьте следующие строки в app / Http / rout.php.
приложение / Http / routes.php
Route::get('/validation','[email protected]');
Route::post('/validation','[email protected]');
Шаг 5 - Посетите следующий URL, чтобы проверить правильность.
HTTP: // локальный: 8000 / валидация
Предыдущая: Laravel (5.7) Сессия
Далее: Laravel (5.7) Обработка ошибок
Новый контент: Composer: менеджер зависимостей для PHP , R программирования