Fehler beim speichern von Artikeln

Hallo Community,

beim abspreichern von einem erstellten Artikel taucht folgende Fehlermeldung auf: 

DateInterval::__construct(): Unknown or bad format (PD)

Gestern hat noch alles funktioniert. Könnt’ ihr mir bitte weiterhelfen?

Vielen Dank im Voraus.

Hast Du es schon gelöst?
Ich bin keine Shopware-Profi. Das ersteinmal vorweg.

Das erste Wort lautet: Date… also, Datum.

Was mir dazu einfällt: Guck doch mal bei „Eistelldatum“ Vielleicht liegt das in der Zukunft oder irgendwas.
*Schulterzuck* nur eine Idee.
Liebe Grüße
Silke

Hier ein ähnliches Problem (wahrscheinlich seit dem Update auf 5.3.3).

Hab diese Meldung beim Speichern eines neuen Artikels über RestAPI:

DateTime::__construct(): Failed to parse time string (NULL) at position 0 (N): The timezone could not be found in the database

Und ich sehe auch überall „NULL“ als Text in den String-Feldern (wo früher einfach nichts stand).

Hab ins Log geschaut und Fehler tritt auf in der __construct function von Article.php (im Ordner …/shopware5/var/cache/production_201709190948/doctrine/attritubtes). Die sieht bei mir so aus:

public function __construct()
    {
        $this->attr1 = "NULL";
        $this->attr2 = "NULL";
        $this->attr3 = "NULL";
        $this->attr4 = NULL;
        $this->attr5 = "NULL";
        $this->attr6 = "NULL";
        $this->attr7 = "NULL";
        $this->attr8 = "NULL";
        $this->attr9 = "NULL";
        $this->attr10 = "NULL";
        $this->attr11 = "NULL";
        $this->attr12 = "NULL";
        $this->attr13 = "NULL";
        $this->attr14 = "NULL";
        $this->attr15 = "NULL";
        $this->attr16 = "NULL";
        $this->attr17 = new \DateTime("NULL");
        $this->attr18 = "NULL";
        $this->attr19 = "NULL";
        $this->attr20 = "NULL";
        $this->netiConsultantToolsCommissionGroups = NULL;
        $this->netiConsultantToolsDiscountGroups = NULL;
    }

Dieser erklärt einiges:

  1. Strings werden nicht auf NULL-Wert gestellt, aber kriegen den Text „NULL“ zugewiesen!
  2. Fehler tritt auf in der Zeile mit attr17: DateTime(„NULL“). Wieder Text „NULL“ statt NULL-Wert. Und der Text „NULL“ ist kein gültiges Datum, deswegen interpretiert DateTime den Parameter wie eine TimeZone (erster Parameter ist dann Zeit ‚now‘) und „NULL“ ist keine bekannte TimeZone ==> Fehler.

Hab diese Zeile mal geändert in:

$this->attr17 = NULL;

und dann gibt’s kein Fehler mehr.

Dasselbe Problem mit den „NULL“-Texten gibt’s auch in __construct von Customer.php, Order.php, usw.

Weiss jemand; wo/wann/wie diese cache-Dateien erzeugt werden? Da gibt’s wohl einen kleinen Bug…

@WillemMeert ein Workaround zu Deiner Fehlermeldung wurde hier übernommen: Workaround for MariaDB >= 10.2.7 compatibility by samuelvogel · Pull Request #1396 · shopware/shopware · GitHub

1 „Gefällt mir“

Hallo @mmayer‍,

wir haben seit einem Serverwechsel (beim gleichen Hoster) verbunden mit Datenbankwechsel von mysql zu mariadb 10.2.7 auch den Fehler

core.CRITICAL: DateTime::__construct(): Failed to parse time string (NULL) at position 0 (N): The timezone could not be found in the database

Wenn ich diesen Beitrag richtig verstehe muss ich wie hier und hier beschrieben die Datei engine/Shopware/Components/Model/Generator.php entsprechend anpassen.

Dann ist das Problem gelöst?

Danke für deine Rückmeldung!

Peter von FAHRER Berlin

@mmayer‍ und alle, die auch den MUT haben,

JA!

Das Problem kann durch die Anpassugen in der Datei engine/Shopware/Components/Model/Generator.php behoben werden.

Habe es gerade getestet und es läuft wieder, wie gewünscht. Ein rechtzeitig eingespieltes Shopware-Update hätte den Fehler sicher vermieden.

Peter von FAHRER Berlin