【问题标题】:Laravel replace comma by dot in array input before validation在验证之前,Laravel 在数组输入中用点替换逗号
【发布时间】:2019-05-31 17:56:24
【问题描述】:

我想在多个数组输入中用点替换所有逗号,在检查输入是否为数字之前。我有 6 个输入,命名为百分比,索引从 1 到 6。

这就是我想将修改后的百分比与 $request 变量合并的方式。

    for ($c = 1; $c <= 6; $c++) {
        if ($request->percentage[$c] != null) {
          $request->merge([
            "percentage.$c" => str_replace(',', '.', $request->percentage[$c])
          ]);
        }
      }

这就是我想要验证百分比的方式。

    $this->validate($request, [
        'percentage.1' => 'required|numeric',
        'percentage.2' => 'numeric|nullable',
        'percentage.3' => 'numeric|nullable',
        'percentage.4' => 'numeric|nullable',
        'percentage.5' => 'numeric|nullable',
        'percentage.6' => 'numeric|nullable',
      ]);

但是,这个解决方案不知何故不起作用。例如,如果我输入 20,77,则表示它不是数字。 有谁知道是什么问题?

【问题讨论】:

标签: php laravel


【解决方案1】:

我认为这需要再解释一下。就像 $request 数据在修改之前的样子。或者修改后的输出$request数据是什么样子的。

我想你说的两个数字(20 和 77)应该是 $c 变量所在的位置?因此,您正在循环 1 到 6 并检查 $request-&gt;percentage[$c],其中 $c 是您输入的数字,例如20 或 77...因为您的脚本在达到 6 后停止,所以它永远不会达到 20 或 77。

【讨论】:

  • 20,77 并不意味着 20 和 77。它确实意味着 20.77。我想将“20,77”的输入转换为“20.77”,然后在验证器中进行检查!
猜你喜欢
  • 1970-01-01
  • 2014-02-21
  • 2021-11-06
  • 2017-06-09
  • 2023-03-23
  • 2016-12-09
  • 2015-09-20
  • 2018-03-18
  • 2021-05-28
相关资源
最近更新 更多