【问题标题】:Laravel String Validation Failing on "True" and "False"Laravel 字符串验证在“True”和“False”上失败
【发布时间】:2020-02-21 07:49:26
【问题描述】:

最近我注意到,在 laravel 中使用以下验证器不适用于像“True”或“False”这样的布尔输入。虽然我笑得很开心,但我想知道有什么办法可以让字符串验证器接受“True”或“False”

        'first_name'               => 'sometimes|required|string|max:255',
        'last_name'                => 'sometimes|required|string|max:255',

如果我删除验证,它最终会在数据库中将“True”保存为 1,将“False”保存为“0”。

【问题讨论】:

  • 您是否以 json 格式发送数据?
  • 作为其他值的字符串。
  • 请举例说明您的请求负载、预期行为和当前行为。您的问题不清楚。
  • 我感觉是php的问题,今天会运行邮递员测试,但我不抱太大希望
  • 你能回答我的评论吗?举例说明您的问题,向我们展示:1.您如何将数据发送到 php(作为 json 有效负载或表单数据) 2.您希望数据如何保存在数据库中 3.如何保存。 4. 验证不起作用是什么意思?它说这是无效的?它通过了吗?

标签: php laravel validation


【解决方案1】:

用邮递员测试,这似乎是一个 laravel/php 问题。

看起来问题在于将类似布尔值的字符串转换为布尔值的遗留中间件。

【讨论】:

    【解决方案2】:

    嗯,输入存储为字符串。如果您使用的是===,那么您可能永远找不到实现该功能的方法。但是,您可以使用==See the first two rows in the table。不同之处在于== 尝试不同的类型,因此它将第一个变量的类型转换为签入到第二个变量的类型,而=== 不会更改类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-17
      • 2021-06-19
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      相关资源
      最近更新 更多