Laravel заменяет запятую на точку в массиве перед проверкой - PullRequest
0 голосов
/ 31 мая 2019

Я хотел бы заменить все запятые на точки во множественных входах массива, перед проверкой, является ли ввод числовым .У меня есть 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, это говорит о том, что это не цифра.Кто-нибудь знает, в чем проблема?

1 Ответ

0 голосов
/ 31 мая 2019

Я думаю, это нужно объяснить немного подробнее.Например, как выглядят данные $request перед их изменением.Или как выглядят выходные данные $request после их изменения.

Я полагаю, что два числа, которые вы сказали (20 и 77), должны находиться там, где находится переменная $c?Итак, вы просматриваете от 1 до 6 и проверяете $request->percentage[$c], где $c - это числа, которые вы ввели, например, 20 или 77 ... Поскольку ваш скрипт останавливается после того, как он достигает 6, он никогда не достигнет 20 или77.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...