Bài 8. Validate Form động trong Laravel 5

Bài trước mình đã giới thiệu về Migrations trong Laravel 5 và tạo model website tin tức. Bài hôm nay chúng ta sẽ đi tìm hiểu về Validate Form trong Laravel 5.

Mục Lục:

1. Tạo 1 form request

Để tạo form request bạn có thể sử dụng artisan để tạo file tự động

        $ php artisan make:request DemoRequest
    

File sẽ được tạo trong thư mục app/Http/Requests/DemoRequest.php

        namespace App\Http\Requests;
        use Illuminate\Foundation\Http\FormRequest;

        class DemoRequest extends FormRequest
        {
            /**
             * Determine if the user is authorized to make this request.
             *
             * @return bool
             */
            public function authorize()
            {
                return false;
            }

            /**
             * Get the validation rules that apply to the request.
             *
             * @return array
             */
            public function rules()
            {
                return [
                    //
                ];
            }
        }
    

2. Chỉnh lại Authorize

Ở đây ta không cần kiểm tra quyền của user nên ta return true luôn

        public function authorize()
        {
          return true;
        }
    

3. Thêm custom validation rules

Tiếp theo ta chỉnh sửa đến hàm rules(), bạn có thể dùng rất nhiều các rules có sẵn của Laravel, tham khảo: tại đây

         public function rules()
        {
            $postId = $this->route()->parameter('id');
            return [
                'txtName' => 'required',
                'txtEmail' => 'required|email',
                'txtUsername' => 'required|unique:users,username,'.$postId,
                'txtPassword' => 'required',
                'txtPasswordAgain' => 'required|same:txtPassword'
            ];
        }
    

Ở ví dụ trên tôi validate trường name không được rỗng, email không được rỗng và phải có đinh dạng là email, username không rỗng và không được trùng lặp nhau, passwword không được rỗng, nhập lại password không được rỗng và phải giống với password

4. Validation Messages

Để xử lý messages bạn dùng hàm messsages() và lặp tương tự như phần rules

        public function messages() {
            return [
                'txtName.required' => 'Bạn chưa nhập họ tên',
                'txtEmail.required' => 'Bạn chưa nhập email',
                'txtEmail.email' => 'Email không hợp lệ',
                'txtUsername.required' => 'Bạn chưa nhập username',
                'txtUsername.unique' => 'Username đã tồn tại',
                'txtPassword.required' => 'Bạn chưa nhập password',
                'txtPasswordAgain.required' => 'Bạn chưa xác nhận lại password',
                'txtPasswordAgain.same' => 'Xác nhận password chưa khớp'
            ];
        }
    

Trong bài này mình đã giới thiệu về Validate Form trong Laravel 5. Trong series bài viết tiếp theo mình sẽ hướng dẫn các bạn về Eloquent trong Laravel 5 và tạo chức năng thêm, sữa, xóa cho trang category. Mời các bạn đón đọc. Bài viết trên là những hiểu biết của cá nhân mình nên không tránh phải sai sót, rất mong sự đóng góp ý kiến của các bạn để bài viết trở nên hữu ích hơn.