Validation Laravel


-Chạy lênh php artisan make:request  NameRequest
laravel sẽ sinh ra 1 class NameRequest  được extend từ class FormRequest

1/ Trong file formrequest có :
**** function authorize()
+ Mặc định return false  => phải chuyển thành true để cấp quyền  sử dụng formrequest này.
function rules()
+ Chứa các rule validate dữ liệu
function attributes() => nếu cần tự tạo
+ function có tác dùng custom các tên thuộc tính hiển thị  trong messeage lỗi (mặc định nếu không custom thì sẽ lấy name trong form)
function messages() => nếu cần tự tạo (file thông báo mặc định sẵn của laravel được lưu trong
lang/en/validation.php
+ function có tác dụng custom các nội dung thông báo , ta có thể custom chi tiết cho từng loại rule cụ thể ở đây.

2/ Chi tiết :
Các viết rule trong fuction rule() :
return [
'full_name' => 'required|max:255',
'email' => 'required|email|unique:users,email',
]

3, Để có thể sử dụng form request tại controller ta thay vì khai báo Request $request => $FormRequest $request
vd : public function store(UserCreateRequest $request)

4/ Khi đã sử dụng thành công Form Request ta submit form tại view mà không đáp ứng đủ các rule form request thì mặc định laravel sẽ back lại trang đã submit form và sinh ra một biến $errors để lưu các câu thông báo lỗi.

  • Ta có thể hiển thị toàn bộ lỗi này ở view :
    @if ($errors->any())
    @foreach ($errors->all() as $error)
    {{ $error }}
    @endforeach
    @endif
    - Hoặc hiển thị từng trường lỗi 1 :
    @error('email')
    {{ $message }}
    @enderror

ref:
https://laravel.com/docs/9.x/validation#available-validation-rules