79451925

Date: 2025-02-19 15:37:12
Score: 0.5
Natty:
Report link

This works:

        $validation = \Config\Services::validation();

        $validation->setRules([
            'field1'           => 'required|max_length[20]',
            'array1'           => 'required',
            'array1.*'         => 'required|numeric',
            'array1_keys.*'    => 'required|numeric',
            'array1_count'     => 'required|numeric|greater_than_equal_to[1]|less_than_equal_to[50]'
        ]);

        $to_validate                 = $this->request->getPost();
        $to_validate["array1_keys"]  = array_keys($to_validate['array1'] ?? []);
        $to_validate["array1_count"] = count($to_validate["array1_keys"]);

        if (! $validation->run($to_validate)) {
            return $this->failValidationErrors($validation->getErrors());
        }

That said it is hardly elegant so I will happily upvote a more concise alternative.

Reasons:
  • Blacklisted phrase (0.5): upvote
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (0.5):
Posted by: ChrisG