Lợi thế lớn nhất của Laravel so với các Framework khác là Laravel tích hợp rất nhiếu tính năng được tích hợp sẵn. Trong bài viết này, chúng ta sẽ tìm hiểu về Laravel Validation.
Chức năng
Là một công cụ do Laravel cung cấp dùng để kiểm tra dữ liệu từ phía client gửi lên cho server trước khi chúng ta thực hiện xử lý dữ liệu đó. Ngoài ra, nó còn giúp chúng ta đảm bảo được tính đúng đắn cảu dữ liệu, bắt được các lỗi nhập dữ liệu sai của người dùng và yêu cầu người dùng nhập lại dữ liệu.
Thực hành
Bây giờ, chúng ta sẽ bắt đầu tìm hiểu cách hoạt động của nó như thế nào thông qua ví dụ sau đây
Giả sử, chúng ta sẽ tạo một form gồm có những thông tin title và body.
Trước tiên, chúng ta sẽ tạo một route mới có url "/post" với 2 method là get và post, mở file routes/web.php và chỉnh sửa như sau:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PostController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('post', [PostController::class, 'create'])->name('posts.create');
Route::post('post', [PostController::class, 'store'])->name('posts.store');
Tiếp theo, chúng ta cần phải tạo controller mới bằng lệnh command sau
php artisan make:controller PostController
Sau đó, bạn hãy chỉnh sửa controller giống như bên dưới
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class PostController extends Controller
{
public function create()
{
return view('post');
}
function store(Request $request)
{
$validated = $request->validate([
'title' => 'required|max:255',
'body' => 'required',
]);
// store your post data
}
}
Đoạn mã dưới đây, dùng kiểm tra dữ liệu trước khi lưu xuống cơ sở dữ liệu
$validated = $request->validate([
'title' => 'required|max:255',
'body' => 'required',
]);
Bây giờ, chúng ta hãy tạo file post.blade.php trong thư mục resources/views
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Laravel Validation ManhDanBlogs</h2>
<form method="post">
@csrf
@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="title">Title:</label>
<input type="text" class="form-control" name="title" value="{{ old("title") }}">
</div>
<div class="form-group">
<label for="pwd">Body:</label>
<textarea class="form-control" name="body">{{ old("body") }}</textarea>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
</body>
</html>
Đoạn mã dưới đây dùng để hiển thị các thông báo lỗi
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
Như vậy, chúng ta đã hoàn thành xong một ví dụ có sử dụng Laravel Validation, còn chần chờ gì nữa, hãy truy cập vào form post để trải nghiệm đi nào.
Tôi hy vọng bạn thích hướng dẫn này. Nếu bạn có bất kỳ câu hỏi nào hãy liên hệ với chúng tôi qua trang contact. Cảm ơn bạn.