Auswahl des Aufgabenblatts im Testblock kann nicht gespeichert werden (PHP 8.1)
Berichtet von der HAWK, betrifft aber alle Installationen mit PHP >= 8.1:
Beim Anlegen eines Testblocks in der Courseware kann zwar ein Aufgabenblatt ausgewählt werden, es gibt beim Speichern aber den Fehler:
PATCH https://studip-test.uni-osnabrueck.de/jsonapi.php/v1/courseware-blocks/<id>
status "422"
title "Unprocesssable Entity"
detail "Invalid payload for this `block-type`."
Ursache ist eine Änderung in PDO in PHP 8.1, die grundsätzlich auch an anderen Stellen in Stud.IP Probleme machen kann.
Konkret kommt die ausgelesene ID nun als int
statt als string
aus PDO, wird so an Vue weitergegeben und in die Payload des Blocks eingefügt. Das Schema für die Payload legt als Typ aber string
fest, weil die ID bis PHP 8.0 auch als String ausgelesen wurde. Mit PHP 8.1 gibt es aufgrund des anderen Typs dann einen Fehler bei der Validierung in der JSON-API.