Giới thiệu
Chào bạn! Trong phát triển ứng dụng web, việc kiểm tra và xác thực dữ liệu đầu vào là một bước quan trọng để đảm bảo tính bảo mật và độ tin cậy của ứng dụng. Laravel 11 cung cấp nhiều helper functions giúp bạn dễ dàng kiểm tra dữ liệu và thực hiện xác thực mà không cần viết quá nhiều mã. Các hàm như filled(), blank(), validator(), và old() rất hữu ích để xử lý các biểu mẫu và xác thực dữ liệu từ người dùng.
Bài viết này CodeTutHub sẽ giới thiệu cách sử dụng những hàm helper này với ví dụ cụ thể trong ứng dụng Laravel.
1. Hàm filled()
Hàm filled() kiểm tra xem một trường dữ liệu có tồn tại và không trống hay không. Đây là cách nhanh chóng để kiểm tra dữ liệu được gửi từ các biểu mẫu mà không cần viết logic phức tạp.
Cách sử dụng:
- Kiểm tra trường không trống:
if (filled($request->input('email'))) {
// Trường 'email' đã được điền
echo 'Email đã được nhập!';
}Trong ví dụ trên, nếu trường email không rỗng, thông báo "Email đã được nhập!" sẽ được hiển thị.
- Kiểm tra một biến đơn giản:
$value = 'Hello, Laravel!';
if (filled($value)) {
echo 'Giá trị đã được điền!';
}Hàm filled() trả về true nếu biến không trống và tồn tại.
2. Hàm blank()
Ngược lại với filled(), hàm blank() kiểm tra xem một trường hoặc biến có trống hoặc không tồn tại hay không.
Cách sử dụng:
- Kiểm tra trường trống:
if (blank($request->input('email'))) {
// Trường 'email' không có giá trị
echo 'Email chưa được nhập!';
}- Kiểm tra biến:
$value = '';
if (blank($value)) {
echo 'Giá trị này trống!';
}Hàm blank() trả về true nếu biến hoặc trường dữ liệu trống hoặc không tồn tại, rất hữu ích để kiểm tra dữ liệu người dùng nhập vào.
3. Hàm validator()
Hàm validator() giúp tạo ra một trình xác thực (validator) để kiểm tra dữ liệu đầu vào từ các biểu mẫu hoặc yêu cầu. Laravel cung cấp một hệ thống xác thực mạnh mẽ và linh hoạt để giúp bạn dễ dàng kiểm tra tính hợp lệ của dữ liệu.
Cách sử dụng:
- Xác thực dữ liệu từ biểu mẫu:
use Illuminate\Support\Facades\Validator;
$validator = Validator::make($request->all(), [
'name' => 'required|string|max:255',
'email' => 'required|email',
]);
if ($validator->fails()) {
return redirect('form')
->withErrors($validator)
->withInput();
}Trong ví dụ này, dữ liệu từ biểu mẫu sẽ được kiểm tra xem trường name và email có hợp lệ hay không. Nếu không hợp lệ, người dùng sẽ được chuyển hướng lại trang form kèm theo thông báo lỗi.
- Xác thực dữ liệu với thông báo tùy chỉnh:
$validator = Validator::make($request->all(), [
'password' => 'required|min:6',
], [
'password.required' => 'Bạn cần nhập mật khẩu!',
'password.min' => 'Mật khẩu phải có ít nhất 6 ký tự!',
]);
if ($validator->fails()) {
return redirect('register')
->withErrors($validator)
->withInput();
}Sử dụng hàm validator() cho phép bạn dễ dàng thiết lập các quy tắc xác thực dữ liệu và thông báo lỗi một cách linh hoạt.
4. Hàm old()
Hàm old() được sử dụng để lấy lại giá trị đầu vào trước đó từ yêu cầu trước đó (thường sau khi có lỗi xác thực). Điều này giúp giữ lại các giá trị người dùng đã nhập vào form để họ không phải nhập lại sau khi gặp lỗi.
Cách sử dụng:
- Lấy lại giá trị đầu vào trong view:
<input type="text" name="name" value="{{ old('name') }}">Trong ví dụ này, nếu trường name đã được nhập trước đó nhưng yêu cầu không hợp lệ, hàm old('name') sẽ tự động điền lại giá trị mà người dùng đã nhập.
- Sử dụng giá trị mặc định nếu không có giá trị cũ:
<input type="text" name="email" value="{{ old('email', 'example@example.com') }}">Nếu không có dữ liệu cũ, old() sẽ trả về giá trị mặc định là example@example.com.
5. Tổng kết các hàm:
| Hàm | Mô tả |
|---|---|
filled() | Kiểm tra xem trường dữ liệu có tồn tại và không trống hay không. |
blank() | Kiểm tra xem trường dữ liệu có trống hoặc không tồn tại hay không. |
validator() | Tạo và thực thi trình xác thực dữ liệu theo các quy tắc cụ thể. |
old() | Lấy lại giá trị cũ của đầu vào từ yêu cầu trước đó sau khi có lỗi. |
6. Ví dụ tổng hợp
public function store(Request $request)
{
// Kiểm tra nếu trường 'name' không trống
if (filled($request->input('name'))) {
echo 'Tên đã được nhập!';
}
// Tạo validator và kiểm tra dữ liệu
$validator = Validator::make($request->all(), [
'name' => 'required|string|max:255',
'email' => 'required|email',
]);
// Nếu xác thực thất bại, trả về trang trước với lỗi và dữ liệu cũ
if ($validator->fails()) {
return redirect('register')
->withErrors($validator)
->withInput();
}
// Lưu trữ dữ liệu sau khi xác thực thành công
// ...
}Trong ví dụ này, dữ liệu từ biểu mẫu sẽ được kiểm tra bằng validator(), và nếu không hợp lệ, người dùng sẽ được chuyển hướng trở lại trang với thông báo lỗi và dữ liệu cũ.
7. Kết luận
Các hàm helper trong Laravel 11 như filled(), blank(), validator(), và old() cung cấp cho bạn các công cụ mạnh mẽ để kiểm tra và xác thực dữ liệu trong ứng dụng của mình. Việc sử dụng các hàm này không chỉ giúp đảm bảo dữ liệu từ người dùng luôn hợp lệ mà còn mang lại trải nghiệm người dùng tốt hơn bằng cách giữ lại thông tin đã nhập khi gặp lỗi.
Tác giả: Đội ngũ CodeTuthub.com








