在验证之前,Laravel用数组输入中的点替换逗号

时间:2019-05-31 09:39:59

标签: php laravel

在检查输入是否为数字之前,我想用多个数组输入中的点替换所有逗号。我有6个输入,命名为percent,索引从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,则表示它不是数字。 有人知道是什么问题吗?

1 个答案:

答案 0 :(得分:0)

我认为这需要进一步解释。像$request数据在修改之前的样子。或修改后的输出$request数据的外观。

我想象您说的两个数字(20和77)应该位于$c变量所在的位置?因此,您要遍历1到6,并检查$request->percentage[$c],其中$c是您输入的数字,例如20或77 ...因为脚本在达到6后就停止了,所以永远不会达到20或77。