Урок по валидации формы в Laravel 8 с примером
Урок по валидации формы в Laravel 8 поможет вам быстро освоить проверку данных на серверной стороне. В статье приведен пример настройки валидации для различных типов данных, что значительно упрощает процесс разработки.
Вы узнаете, как использовать встроенные инструменты Laravel для улучшения безопасности и удобства работы с формами. Простые пошаговые инструкции помогут вам внедрить проверку данных в ваши проекты за минимальное время.
Шаг 1: создаем маршруты
Сначала с помощью приведенного ниже кода мы создадим маршруты для отображения ошибок.
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PDFController;
Route::get('post', [PostController::class, 'create'])->name('post');
Route::post('post', [PostController::class, 'store'])->name('generate-pdf');Шаг 2: создаем контроллер
Теперь мы создадим контроллер и добавим методы, как показано ниже. Один метод отвечает за вывод шаблона Blade по запросу GET, второй через запрос POST отображает результаты валидации.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Post;
class PostController extends Controller
{
/**
* Вывод панели управления приложения.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('create_post');
}
/**
* Вывод панели управления приложения.
*
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$request->validate([
'title' => 'required|unique:posts|max:255',
'discription' => 'required',
]);
Post::create($request);
return back()->with('success', 'Post created successfully.');
}
}Шаг 3: создаем шаблон Blade
Теперь создадим файл create_post.blade.php, в котором вместе с кодом темы Bootstrap разместим обработку сообщений об ошибках на Laravel. Данный файл в нашем примере находится здесь – resources/views/create_post.blade.php.
<!DOCTYPE html>
<html>
<head>
<title>Laravel form validation example - codingdriver.com</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<h1>Пример валидации данных в форме Laravel</h1>
@if(Session::has('success'))
<div class="alert alert-success">
{{ Session::get('success') }}
@php
Session::forget('success');
@endphp
</div>
@endif
<form method="POST" action="{{ route('post') }}">
{{ csrf_field() }}
<div class="form-group">
<label>Title:</label>
<input type="text" name="title" class="form-control" placeholder="Name">
@if ($errors->has('title'))
<span class="text-danger">{{ $errors->first('title') }}</span>
@endif
</div>
<div class="form-group">
<strong>Discription:</strong>
<textarea name="discription" class="form-control" placeholder="Discription"><textarea>
@if ($errors->has('discription'))
<span class="text-danger">{{ $errors->first('discription') }}</span>
@endif
</div>
<div class="form-group">
<button class="btn btn-success btn-submit">Submit</button>
</div>
</form>
</div>
</body>
</html>Файл вывода сообщений об ошибках на Laravel и Blade готов, его можно проверять в браузере.
Комментарии