将 Laravel 9 自定义规则转换为 Laravel 10 规则

问题描述 投票:0回答:1

我在 laravel 9 中有一个自定义规则,它有这样的传递和消息功能:

<?php

namespace Auth\Http\Rules;

use Illuminate\Contracts\Validation\Rule;

class CustomRule implements Rule
{
    
    public function __construct()
    {
        //
    }

    public function passes($attribute, $value)
    {
        if (strlen($value) == 15) {
           return true;
        } else {
           return false;
        }
    }

    public function message()
    {
        return 'value is invalid';
    }
}

但是在 laravel 10 中,当你创建自定义规则时,只有这样的验证函数:

public function validate(string $attribute, mixed $value, Closure $fail): void

那么我可以使用旧规则而不进行任何更改还是必须更改?!怎么改?!

php laravel rules
1个回答
0
投票

此外,在 Laravel 10 中,您还有自定义的 Rule 对象

只需将您的规则对象更改为:

use Illuminate\Contracts\Validation\Rule;


class CustomRule implements Rule
{
public function __construct()
{
    //
}

public function validate($attribute, $value, $parameters, $validator): bool
{
    if (strlen($value) == 15) {
        return true;
    } else {
        return false;
    }
}

public function message(): string
{
    return 'Value is invalid.';
}
}
© www.soinside.com 2019 - 2024. All rights reserved.