CodeIgniter4 icon indicating copy to clipboard operation
CodeIgniter4 copied to clipboard

Bug: getValidated() missing data when double wildcard rule

Open sanchawebo opened this issue 1 year ago • 3 comments

PHP Version

8.3

CodeIgniter4 Version

4.5.5

CodeIgniter4 Installation Method

Composer (using codeigniter4/appstarter)

Which operating systems have you tested for this bug?

macOS, Linux

Which server did you use?

apache

Database

MySQL 5.7, 10.5.22-MariaDB

What happened?

When running validation in the controller and grabbing the validated data with $this->validator->getValidated(), the data for double wild card rules (eg dates.*.*) is missing.

Steps to Reproduce

Implement this controller (or the logic):

<?php

namespace App\Controllers\Back;

use App\Controllers\BaseController;

class TestController extends BaseController
{
    public function test()
    {
        $data = [
            'id'    => 1,
            'dates' => [
                23 => [
                    45 => '3.4.24',
                ],
            ],
        ];

        $this->validateData($data, [
            'id'        => 'required',
            'dates.*.*' => 'required',
        ]);

        $validated = $this->validator->getValidated();

        d($data, $validated);
    }
}

Expected Output

The validated data including in this case the date array.

Anything else?

I think the problem is that the validation rule ends in a double wildcard, because when i change the array and rules to this it works:

$data = [
    'id'    => 1,
    'dates' => [
        23 => [
            45 => [
                'date' => '3.4.24',
            ],
        ],
    ],
];

$this->validateData($data, [
    'id'             => 'required',
    'dates.*.*.date' => 'required',
]);

$validated = $this->validator->getValidated();

d($data, $validated);

Does CI4 not like rules ending with wildcards?

sanchawebo avatar Oct 09 '24 11:10 sanchawebo

@sanchawebo can you test on my PR #9220?

ddevsr avatar Oct 11 '24 03:10 ddevsr

Earliest i can test this would be next week, sorry.

sanchawebo avatar Oct 11 '24 07:10 sanchawebo

Tested your PR and it worked for my project. Thank you very much.

sanchawebo avatar Oct 15 '24 06:10 sanchawebo