codeigniter4 / codeigniter4/CodeIgniter4

Bug: Entity::toRawArray() may return Time object

Ouverte
#8,302 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
bug
Langage dominant
PHP
Étoiles
6k
Forks
2k
Merge moyen
1 j 11 h
PR mergées (30 j)
73

Description

### PHP Version

8.1

### CodeIgniter4 Version

4.4.3 and develop

### CodeIgniter4 Installation Method

Git

### Which operating systems have you tested for this bug?

macOS

### Which server did you use?

cli-server (PHP built-in webserver)

### Database

MySQL 8.0.34

### What happened?

The following code returns Time object.

```php
$user->updated_at = '2023-12-12 12:12:12';
var_dump($user->toRawArray());
```

### Steps to Reproduce

```
+----+------------+--------------------+---------+--------------------+--------------------+------------+
| id | name | email | country | created_at | updated_at | deleted_at |
+----+------------+--------------------+---------+--------------------+--------------------+------------+
| 1 | John Smith | john@example.co... | US | 2023-12-07 04:0... | 2023-12-07 04:0... | |
+----+------------+--------------------+---------+--------------------+--------------------+------------+
```
```php
find(1);
var_dump($user->toRawArray());

$user->updated_at = '2023-12-12 12:12:12';
var_dump($user->toRawArray());

$user = $users->find(1);
var_dump($user->toRawArray());
}
```

```
/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Controllers/Home.php:15:
array (size=7)
'id' => string '1' (length=1)
'name' => string 'John Smith' (length=10)
'email' => string 'john@example.com' (length=16)
'country' => string 'US' (length=2)
'created_at' => string '2023-12-07 04:00:48' (length=19)
'updated_at' => string '2023-12-07 04:00:48' (length=19)
'deleted_at' => null

/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Controllers/Home.php:18:
array (size=7)
'id' => string '1' (length=1)
'name' => string 'John Smith' (length=10)
'email' => string 'john@example.com' (length=16)
'country' => string 'US' (length=2)
'created_at' => string '2023-12-07 04:00:48' (length=19)
'updated_at' =>
object(CodeIgniter\I18n\Time)[88]
protected 'timezone' =>
object(DateTimeZone)[90]
public 'timezone_type' => int 3
public 'timezone' => string 'UTC' (length=3)
protected 'locale' => string 'en' (length=2)
protected 'toStringFormat' => string 'yyyy-MM-dd HH:mm:ss' (length=19)
public 'date' => string '2023-12-12 12:12:12.000000' (length=26)
public 'timezone_type' => int 3
public 'timezone' => string 'UTC' (length=3)
'deleted_at' => null

/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Controllers/Home.php:21:
array (size=7)
'id' => string '1' (length=1)
'name' => string 'John Smith' (length=10)
'email' => string 'john@example.com' (length=16)
'country' => string 'US' (length=2)
'created_at' => string '2023-12-07 04:00:48' (length=19)
'updated_at' => string '2023-12-07 04:00:48' (length=19)
'deleted_at' => null
```

### Expected Output

Returns string value `'2023-12-12 12:12:12'`?

### Anything else?

_No response_

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par suivre Entity::toRawArray() avec l’entité User et les champs de date présentés dans la reproduction. Réexécutez ensuite la séquence fournie de find, d’affectation et de toRawArray, puis vérifiez que updated_at est renvoyé sous forme de string comme prévu, plutôt que sous forme d’objet CodeIgniter\I18n\Time.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
mysql, php
Domaine
backend, database
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.