Hallo zusammen! Ich habe folgendes etwas kurioses Problem: Ein Kunde nutzt sehr viele zusätzliche Artikel-Freitextfelder (hat auch das Shopware-Plugin für die Erweiterung installiert). So sollte “attr17” auch als Textfeld verwendet werden. Das ist aber offenbar nicht möglich: Wird “attr17” im Backend als Textfeld definiert (und natürlich in der Datenbank entsprechend angepasst), wird zwar das Model korrekt angepasst, dennoch ist es nicht möglich, andere Werte als ein Datum einzugeben. Ich habe sogar auch testweise das Model für ExtJS angepasst (templates/_default/backend/article/model/attribute.js - dort ist NUR für attr17 als type “date” angegeben, sonst wird überall “string” verwendet), dann kommt beim Speichern allerdings eine Fehlermeldung: “Fehlgeschlagen Während des Speicherns ist ein Fehler aufgetreten:DateTime::__construct(): Failed to parse time string (test) at position 0 (t): The timezone could not be found in the database” Die Validierung als Date wird also offenbar immer noch gemacht - der Meldung nach vermute ich, dass es im PHP-Code passiert. Mir stellen sich jetzt nur die Fragen: 1. Warum?!? 2. Habe ich einen Fehler gemacht oder ist das wirklich so? 3. Wie kann ich attr17 als “normales” Textfeld nutzen oder ist das gar nicht möglich? 3b. Falls es nicht möglich ist: Ich sehe im Forum, dass offenbar andere in anderen Kontexten auch schon Probleme mit attr17 hatten. Warum wird die Typänderung für attr17 dann überhaupt erlaubt und warum gibt es nirgendwo einen Hinweis auf die Besonderheit? Ich hoffe, hier kann jemand für Klarheit sorgen. Bin für jede Hilfe und jeden Hinweis dankbar. Viele Grüße, Christian
Hallo, bitte einmal die Datenbank öffnen, z.B. mit PHPMyAdmin. Dann die Struktur der Tabelle s_articles_attributes ansehen. Dort steht attr17 im Standard auf „datetime“ o.ä. Den Typ des Feldes kannst du aber z.B. auf „TEXT“ ändern. Dann klappt es auch mit dem Speichern im Backend Sebastian
Hallo! Danke für die Antwort, aber: das ist nicht der Grund. Zitat meines Original-Posts: „Wird „attr17“ im Backend als Textfeld definiert (und natürlich in der Datenbank entsprechend angepasst)[…]“ Die Umstellung der Tabelle ist natürlich erfolgt. Ich habe auch überprüft, ob das gecachete Model angepasst wurde - auch hier ist alles korrekt. Der Fehler muss noch an einer anderen Stelle liegen. Christian
Ich hoffe mein Double-Post wird verziehen - da ich mit dem Problem leider noch keinen Schritt weiter bin, hier noch ein Link zu einem Thread mit einem “Leidensgenossen”: programmierung-f56/rest-api-import-exception-bei-attr17-t8947.html Zwar geht es hier um die REST-API, aber der User “Alpine Swift” beschreibt essentiell die selbe Problematik. Grüße, Christian
Bin auf das gleiche Problem gestoßen in 4.2.2 - hier scheint attr17 immer noch standardmäßig als date definiert zu sein ohne, dass das in der Doku erwähnt wird. Was hat es mit dem Feld auf sich und wieso kann man dort nichts drin speichern?
Ich glaube ich kann es dir beantworten. Keiner weiß mehr so genau warum attr17 “date” ist Zur Vervollständigung: mediumtext felder: attr9, attr10, attr18 date: attr17 varchar(20): attr20, varchar(30): attr15, attr16 rest --> varchar(200) und varchar(255)
Hallo zusammen, ich habe das Feld “attr17” im Shopware Backend (4.2.1) als Textfeld, in der Datenbank als varchar(255) und auch in der Datei /templates/_default/backend/article/model/attribute.js attr17 als string definiert. [...]{ name: 'attr17', type: 'string' },[...]
Erhalte aber, beim Speichern eines Artikels, die Fehlermeldung: “Fehlgeschlagen Während des Speicherns ist ein Fehler aufgetreten:DateTime::__construct() [datetime.–construct]: Failed to parse time string (test) at position 0 (t): The timezone could not be found in the database” Was mache ich falsch?