【问题标题】:Laravel validation Form - Don't accept number into double quotesLaravel 验证表单 - 不接受数字成双引号
【发布时间】:2022-01-11 14:49:27
【问题描述】:

我有这个 POST 请求:

{
    "documentType": "1",
    "metadata": []
}

我有这个验证规则:

const POST_RULES = [
    'documentType' => 'required|int',
    'metadata' => 'array',
];

问题是:

我不想接受这个 documentType ("1") 的值,因为它是一个字符串。应用程序的用户可以发送一个字符串。

我只需要接受不带双引号的数字(1、2、3、4 等...)。

可以为此创建规则吗?

提前致谢,

【问题讨论】:

  • 如果它通过验证,它是一个有效的整数,如果你必须将它转换为一个整数
  • 谢谢,所以我需要强制为我的属性设置类型,如下所示:$payload['documentType'] = (int)$payload['documentType']; @lagbox

标签: laravel forms validation rules


【解决方案1】:

在 POST 请求中,发送不带引号的数字

{
    "documentType": 1,
    "metadata": []
}

您需要一个 INT,而不是一个 STRING。

或者,您可以接受“1”,然后检查它是否为数字:

if (is_numeric($request->documentType)) {
   // Do other stuff

   return true
}

【讨论】:

  • 感谢您的回复,应用程序的用户可以发送字符串。我无法在此处进行控制。
  • @Mitsukk 请检查我的帖子编辑,请
  • 谢谢我这样做了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-31
  • 1970-01-01
  • 1970-01-01
  • 2019-10-03
  • 2023-03-20
  • 1970-01-01
相关资源
最近更新 更多