Laravel - Validation rule unique requires at least 1 parameters

Trong controller em có thêm vào một đoạn code sử dụng lớp Validator của Laravel để đảm bảo tính unique của một trường trên table như sau:

class CategoriesController {
    /**
     * Store a newly created resource in storage.
     * POST /categories
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        $input = Request::all();
        $validator = Validator::make($input, [
            'name' => 'required|unique|min:10',
            'description' => 'required'
        ]);

        if ($validator->fails()) {
            // ...
        }
    }
}

Nhưng khi chạy thì máy nó báo về lỗi như sau:

Lỗi Validation rule unique requires at least 1 parameters trong Laravel

Em đã kiểm tra kỹ lại trên document của thằng Laravel rồi nhưng vẫn chưa tìm ra được bị sai ở khúc nào. Rất mong nhần được sự giúp đỡ của bác, em cảm ơn nhiều!

1 Câu Trả Lời

Nguyễn Đạt Nguyễn Đạt

Sử dụng unique rule theo cách bạn làm ở trên thì bạn cần cho Laravel biết muốn so sánh giá trị hiện tại với giá trị của column nào trong table. Nếu như bạn muốn kiểm tra tính duy nhất của giá trị của $input['name'] với giá trị của column name của các record có trong table categories:

        $validator = Validator::make($input, [
            'name' => 'required|unique:categories,name|min:10',
            'description' => 'required'
        ]);

Nếu như tên của khoá trong mảng cần kiểm tra $input['name'], trùng với tên column (name) của table trên database như trường hợp trên thì bạn có thể bỏ bạn cũng có thể viết gắn hơn như sau:

        $validator = Validator::make($input, [
            'name' => 'required|unique:categories|min:10',
            'description' => 'required'
        ]);
Nội dung tối thiểu 100 ký tự

Câu Hỏi Liên Quan