How do you use `object` cast handler for Entity?
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginne mit der Dokumentation zum Property-Casting, lies anschließend system/Entity/Cast/ObjectCast.php und die darin referenzierten Fälle in EntityTest.php. Reproduziere das Beispiel, das eine Entity mit einem Object-Cast speichert, und ermittle das beabsichtigte Verhalten; abgeschlossen ist die Aufgabe, wenn die Verwendung des Handlers und die Interaktion mit der Datenbank durch einen eindeutigen Test oder eine Aktualisierung der Dokumentation abgedeckt sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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?
- Vorherrschende Sprache
- PHP
- Sterne
- 6k
- Forks
- 2k
- Ø Merge
- 1 T. 22 Std.
- Gemergte PRs (30 T.)
- 59
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus codeigniter4/CodeIgniter4
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
codeigniter4/CodeIgniter4#10616 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
codeigniter4/CodeIgniter4#10618 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 62/100
codeigniter4/CodeIgniter4#10617 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
codeigniter4/CodeIgniter4#10615 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
codeigniter4/CodeIgniter4#10589 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in codeigniter4/CodeIgniter4
Ähnliche Issues
-
sync-en
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
sync-en
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 4 Tagen
-
Перевод устарел
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
-
bug
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 76/100
m3ue/m3u-editor#1604 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
femiwiki/docker-mediawiki#1497 ·
Maintainer antworten meist innerhalb von 1 Tag