📜  laravel 验证整数 - PHP (1)

📅  最后修改于: 2023-12-03 15:32:37.097000             🧑  作者: Mango

在 Laravel 应用中验证整数

在 Laravel 应用中,我们可以使用 Validator 类来验证用户的输入数据。如果我们想要验证用户输入的数据是否是一个整数,我们可以使用 integer 规则。本文将介绍如何在 Laravel 应用中使用 integer 规则来验证整数。

步骤
步骤一:建立验证规则

我们可以在 app/Http/Requests 目录下创建一个新的验证器类,例如 IntegerValidationRequest

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class IntegerValidationRequest extends FormRequest
{
    public function rules()
    {
        return [
            'integer_field' => 'integer',
        ];
    }
}

上面代码中的 integer_field 是我们要验证的整数字段名,integer 是 Laravel 的验证规则。这里我们仅仅使用了 integer 规则进行验证,如果需要添加其他规则,可以在 rules 方法中添加。

步骤二:编写控制器方法

在控制器中接收请求数据,并且使用 Validator 类对数据进行验证。如果验证失败,返回错误信息。

<?php

namespace App\Http\Controllers;

use App\Http\Requests\IntegerValidationRequest;
use Illuminate\Http\Request;

class IntegerValidationController extends Controller
{
    public function integerValidation(IntegerValidationRequest $request)
    {
        $validatedData = $request->validated();
        return 'Your integer field is: ' . $validatedData['integer_field'];
    }
}

上面代码中,integerValidation 方法中的 $validatedData 变量将包含验证通过的数据,如果验证失败,则会抛出 ValidationException 异常。错误信息将以 JSON 格式返回。

步骤三:测试验证规则

我们可以使用 Postman 来测试验证规则。发送一个 POST 请求,请求地址为 localhost:8000/api/integer-validation,请求体中包含一个名为 integer_field 的整数字段:

{
    "integer_field": 42
}

如果该整数字段符合验证规则,控制器方法将返回包含整数值的响应,如下所示:

Your integer field is: 42

如果我们发送的数据不是一个整数。控制器方法将返回包含错误信息的响应,如下所示:

{
    "message": "The given data was invalid.",
    "errors": {
        "integer_field": [
            "The integer field must be an integer."
        ]
    }
}
结论

在 Laravel 应用中验证整数非常简单,我们使用 integer 规则即可进行验证。如果我们需要添加其他验证规则,可以在验证器类的 rules 方法中添加。在编写控制器方法时,我们可以使用 $validatedData 变量来获取验证通过的数据,并且使用助手函数 validated 来验证数据。