03/11/2018, 07:57

Hướng dẫn sử dụng Request validation trong Laravel

Hướng tạo request validation để check chuẩn dữ liệu đào vào trong Laravel

Xin chào các bạn!

 

Hôm nay mình sẽ hướng dẫn các bạn tạo một Request validation trong laravel để check chuẩn dữ liệu đàu vào thoe ý mình muốn.

Đầu tiên mình sẽ tạo một file trong thư mục requests để check dữ liệu bàng lệnh

 

php artisan make:request TestRequest

Sau đó hệ thống sẽ tự tạo cho chúng ta một file request app/Http/Middleware/TestRequest.php

 

<?php

namespace App\Http\Requests;

use App\Http\Requests\Request;

class TestRequest extends Request
{
    /**
     * 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 [
            //
        ];
    }
}

-      Trong function authorize() nếu bạn không check quyền đăng nhập bạn có thể trả về kết quả là true.

 

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

-      Trong function rules() mình sẽ viết sẽ quy tác rằng buộc dữ liệu theo mình muốn.

VD

return [

            'userName' => 'required|string',
            'passWord' => 'required|string',
 ];

- Vế bên tay trái (userName, passWord) là tên biến của các trường nhập liệu.

- Vế bên tay phải là những quy tắc rằng buộc. như ví dụ trên required bắt buộc phải nhập dữ liệu đầu vào, string dữ liệu đầu vào phải là kiểu string.

Trong laravel cung cấp rất nhiều rules bạn có thể xem và tham khảo ở đâu:

https://laravel.com/docs/5.2/validation#rule-accepted

 

Nếu bạn không nhập dữ liệu cho 2 trường trên, thì dữ liệu trả về có cấu trúc như thế này.

 

{
    "status_code": 422,
    "code": 0,
    "message": "The username field is required.",
    "errors": {
        "username": [
            "The username field is required."
        ],
        "password": [
            "The password field is required."
        ]
    }
    
}

Dữ liệu trả về toàn tiếng anh, bạn muốn custom lại message theo ý mình muốn thì bạn viết thêm một function message().

Ví dụ: 

 

public function messages()
    {
        return [
            'username.required' => 'Username là thông tin bắt buộc.',
            'password.required' => 'password là trường bắt buộc.',
        ];
    }

Nếu đó dữ liệu trả về theo ý muốn của chúng ta.

 

{
    "status_code": 422,
    "code": 0,
    "message": "Username là thông tin bắt buộc.",
    "errors": {
        "username": [
            "Username là thông tin bắt buộc."
        ],
        "password": [
            "password là trường bắt buộc."
        ]
    }
}

Công việc bây giờ rất đơn giản, bạn muốn sử dụng check dữ liệu ở controller nào thì bạn chỉ việc gọi vào và sử dụng.

 

- Để khai báo trong một controller bạn hãy use nó vào controller đó

use App\Http\Requests\TestRequest;

- Bạn muốn check nó ở function nào thì bạn viết nó theo cấu trúc

 

 public function testLogin(TestRequest $request){}

Khi đó  dữ liệu đầu vào nhu userName, passWord trước khi vào controller testLogin nó sẽ kiểm tra trước khi vào.

 

Bài mình viết của mình xin hết. cám ơn các bạn.

 

Nguồn Laravel 5.2 https://laravel.com/docs/5.2/validation#rule-accepted

Bài liên quan

Hướng dẫn sử dụng Request validation trong Laravel

Hướng tạo request validation để check chuẩn dữ liệu đào vào trong Laravel

Điệp Bắp viết 07:57 ngày 03/11/2018

Hướng dẫn sử dụng Mảng (Array) trong lập trình C#

Khái niệm về mảng trong lập trình csharp . Cách khai báo và hướng dẫn sử dụng, có mấy loại khai báo. 1. Khái niệm Array trong lap trinh C# + Mảng là kiểu tham chiếu. + Mảng là tập hợp các biến có cùng kiểu dữ liệu, cùng tên nhưng có ...

Vũ Văn Thanh viết 00:06 ngày 02/10/2018

Hướng dẫn sử dụng toán tử ?? trong C#

Hôm nay Góc Kinh Nghiệm sẽ giới thiệu các cách dùng toán tử ?? trong C#. Với toán tử này sẽ làm code bạn gọn, sạch và chuyên nghiệp hơn. Toán tử ?? đã được giới thiệu từ C# phiên bản 2.0. Toán tử ?? có 2 toán hạng và có thể được sử dụng như biểu thức bên dưới: x = y ?? z; Toán tử ?? trả về ...

Trần Trung Dũng viết 17:30 ngày 01/10/2018

Hướng Dẫn Sử Dụng UTF-8 trong PHP và MySQL

UTF-8 là bộ ký tự được sử dụng phổ biến hiện nay vì nó hỗ trợ các ký tự có trong nhiều ngôn ngữ (giao tiếp) khác nhau. Bài viết này sẽ hướng dẫn các bạn cách thiết lập PHP, MySQL và văn bản HTML (XML) sao cho các ký tự UTF-8 có thể hiển thị được một cách chính xác trên client (thường là trình ...

Hoàng Hải Đăng viết 16:47 ngày 12/08/2018

Hướng dẫn sử dụng view composer trong laravel 5.3

Xin chào các bạn ! Đến hẹn lại lên hehe.. Nếu bạn là một developer chuyên về làm website chắc hẳn bạn sẽ gặp một vấn đề là một view có thể extend cho nhiều view khác nhau trong toàn bộ dự án . Sẽ có hai loại view như sau: 1 . Đối với loại view này bạn sẽ exend vào view khác dựa vào ...

Bùi Văn Nam viết 15:09 ngày 12/08/2018
+2