Làm cách nào để tạo quy tắc xác thực tùy chỉnh trong laravel?

Là một nhà phát triển web Laravel, tôi rất biết ơn hệ thống Xác thực của nó, hệ thống này chắc chắn cung cấp một bộ quy tắc tuyệt vời, trong các trường hợp thông thường là đủ để xác thực tất cả các loại dữ liệu

Điều tốt về khung không chỉ là nó cung cấp một loạt các tính năng tích hợp mà còn cho phép bạn mở rộng chức năng của nó và xây dựng bộ quy tắc của riêng bạn, mà bạn có thể sử dụng nó trong nhiều dự án

Trong bài viết này, chúng ta sẽ khám phá cách tạo Quy tắc xác thực tùy chỉnh

Mục tiêu là để xác thực biểu mẫu đó với các quy tắc sau

  • Tên. yêu cầu
  • started_at. yêu cầu và ngày
  • kết thúc tại. không bắt buộc, nhưng nếu điền thì phải là ngày và sau started_at

Bây giờ, hãy tạo quy tắc xác thực mà bạn chỉ có thể nhập năm Thế vận hội Olympic
  • Trò chơi bắt đầu vào năm 1896
  • Năm không thể lớn hơn năm hiện tại
  • Số phải chia hết cho 4
Hãy chạy một lệnh.
php artisan make:rule OlympicYear
Laravel tạo một tệp ứng dụng/Quy tắc/OlympicYear. php.
namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class OlympicYear implements Rule
{

    /**
     * Determine if the validation rule passes.
     *
     * @param  string  $attribute
     * @param  mixed  $value
     * @return bool
     */
    public function passes[$attribute, $value]
    {
        //
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message[]
    {
        return 'The validation error message.';
    }
}
Như tôi đã nói, nó tương tự như các lớp Yêu cầu xác thực. Chúng tôi điền vào các phương pháp. pass[] sẽ trả về true/false tùy thuộc vào điều kiện $value, đây là trường hợp của chúng tôi.
public function passes[$attribute, $value]
{
    return $value >= 1896 && $value validate[$request, ['year' => new OlympicYear]];
}
Hãy chú ý đến cú pháp, tham số thứ hai phải là một mảng và sau đó chúng ta tạo một đối tượng mới từ lớp Quy tắc của mình. Đó là nó.

Làm cách nào để thêm xác thực duy nhất trong laravel?

Sử dụng quy tắc xác thực duy nhất trong Laravel Form Request .
$table->string['title']->unique[];.
nghệ nhân php làm. yêu cầu StorePostRequest. .

Chủ Đề