How do you use `object` cast handler for Entity?
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par la documentation sur le property casting, puis lisez system/Entity/Cast/ObjectCast.php et les cas référencés de EntityTest.php. Reproduisez l’exemple qui enregistre une Entity avec un object cast et déterminez le comportement attendu ; le travail est terminé lorsque l’utilisation du handler et l’interaction avec la base de données sont couvertes par un test clair ou une mise à jour de la documentation.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
https://codeigniter4.github.io/CodeIgniter4/models/entities.html#property-casting
The object handler seems to expect the property to be set to an array.
https://github.com/codeigniter4/CodeIgniter4/blob/0cd39937d7a8dbd8074237596024adce0fe3c2af/system/Entity/Cast/ObjectCast.php#L22-L25
https://github.com/codeigniter4/CodeIgniter4/blob/0cd39937d7a8dbd8074237596024adce0fe3c2af/tests/system/Entity/EntityTest.php#L439-L449
However, when setting an array, we cannot save that Entity to the database.
$entity = new class () extends Entity {
protected $casts = [
'id' => 'int',
'active' => 'int-bool',
'memo' => 'object', // Use `object` handler
];
};
$model = new class () extends Model {
protected $table = 'users';
protected $allowedFields = [
'username', 'active', 'memo',
];
protected $useTimestamps = true;
};
$entity->fill(['username' => 'johnsmith', 'active' => false, 'memo' => ['foo', 'bar']]);
$model->save($entity); // CodeIgniter\Database\Exceptions\DatabaseException : Operand should contain 1 column(s)
How is this handler used in the first place?
- Langage dominant
- PHP
- Étoiles
- 6k
- Forks
- 2k
- Merge moyen
- 1 j 22 h
- PR mergées (30 j)
- 59
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de codeigniter4/CodeIgniter4
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
codeigniter4/CodeIgniter4#10616 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
codeigniter4/CodeIgniter4#10618 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 62/100
codeigniter4/CodeIgniter4#10617 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
codeigniter4/CodeIgniter4#10615 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
codeigniter4/CodeIgniter4#10589 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de codeigniter4/CodeIgniter4
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 1 jour
-
Do not throw `WordPress.Security.EscapeOutput.OutputNotEscaped` on `apply_shortcodes()`Peut-être pris @tbradsha l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
fe: spell out "Auto increment" in the table editor, "AI" reads as artificial intelligence todayOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
landsman/adminer-desktop#120 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
components-web-app/docs#227 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100