我在 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
那么我可以使用旧规则而不进行任何更改还是必须更改?!怎么改?!
此外,在 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.';
}
}