📅  最后修改于: 2023-12-03 14:43:51.048000             🧑  作者: Mango
在 Laravel 中,验证输入的数据是一个非常常见的任务。我们可以使用 Laravel 提供的验证器来验证数据,并在数据无效时向用户显示错误消息。本文将介绍如何使用 Laravel 验证器来验证数字至少为 3 位。
首先,我们需要创建一个验证器。可以使用以下 Artisan 命令来创建一个验证器类:
php artisan make:validator MyValidator
此命令会在 app/Validators 文件夹中创建一个名为 MyValidator 的验证器。
然后我们需要在验证器中定义规则。可以使用 Illuminate\Validation\Validator
提供的 numeric
和 min
规则来实现验证数字至少为 3 位。代码如下:
namespace App\Validators;
use Illuminate\Validation\Validator;
class MyValidator extends Validator
{
public function validateNumber($attribute, $value, $parameters) {
return is_numeric($value) && strlen((string) $value) >= 3;
}
}
注:validateNumber
方法即为自定义规则的定义方法,参数 $attribute
表示要验证的属性名,$value
表示要验证的属性值,$parameters
表示规则中的额外参数。
我们创建好了验证器,下一步是在控制器中使用它来验证数据。可以使用以下代码:
$request->validate([
'number' => 'required|number|min:3',
]);
以上代码将应用在表单提交数据时,验证 number
字段是否为数字并且至少为 3 位。如果验证失败,将抛出 Illuminate\Validation\ValidationException
异常,Laravel 将自动将异常转化为 HTTP 响应。
如果要自定义验证失败的错误消息,可以在控制器中添加以下代码:
$request->validate([
'number' => 'required|number|min:3',
], [
'number.min' => 'The number must be at least 3 digits.',
]);
以上代码将自定义 number.min
规则的错误消息为 "The number must be at least 3 digits."。
本文介绍了如何使用 Laravel 验证器来验证数字至少为 3 位。可以使用 Illuminate\Validation\Validator
提供的 numeric
和 min
规则来实现此功能。如果要自定义错误消息,可以在控制器中添加自定义的错误消息。