mal wieder "This value should not be blank" / c1051bb4-d103-4f74-8988-acbcafc7fdc3 bei /category

Hi,

beim ansprechen vom REST-API (POST)  Endpunkt  /category um eine neue (Haupt-) Kateigorie anzulegen bekomme ich folgenden Fehler  “c1051bb4-d103-4f74-8988-acbcafc7fdc3” a.k.a. “This value should not be blank”. Ich verwende die Version v6.1.0 Stable Version

So wie ich das hier bei der SwaggerUI sehe:

 

 

Das sende ich per POST an den /category Endpunkt (also alle mit * markierten Werte gefüllt) + noch ein bisschen mehr, was ich mit über die /admin Oberfläche abgeschaut habe, als ich über die Netzerkkonsole im Browser geschaut habe, was beim manuellen Anlegen passiert:

 

 

Hier bekomme ich den Fehler:

 

Was ist /0/translations/2…/name?

Wird das gebraucht, in der SwaggerUi sehe ich keine translatations, nur ein translated aber das ist ja nicht requierd und hat auch nen anderen Namen?

Ganz allgemein: was stimmt an meinen JSON Request nicht?

 

Grüße,

Stefan

Hi Stefan,

laut CategoryDefinition ist die CategoryTranslation required. Ich schätze Du musst in Deinem Aufbau noch ein

'translations' => [
    [
        'languageId' => 'foo',
        'name' => 'bar'
    ]
]

mitgeben.

erweitere mal den Payload um die Translations

data: {
  type: "category",
  id: "a60f3239d8d0491d9f94532662e2c5dc",
  attributes: {
    name: "Category 1",
    translations: {
      'de-DE': {
        name: 'Kategorie 1'
      }
    }
    [...]
  }
}

 

Hi,

danke erstmal für schnelle reagieren.

Hatte aber keinen Effekt, weder mit languageID (6a…):

 

nach mit Language-Code (de-DE)

 

Die parentID hab ich auch mal auf die Demokategorie gesetzt.

Habe zwischendurch auch mal probiert aus dem data-Objekt ein data-Array mit einem Eintrag zu machen wie hier aus der Netzwerkconsole abgeguckt, aber aucgh kein Effekt - immer noch der gleiche "This value should not be blank. "

 

Hat vieleicht jemand ein funktionierenden JSON-Body den ich mit php an den REST-Enpunkt /category (POST) schicken kann?

Einzelne Values kann ich schon selber dynamisch ersetzen;-)

Das wäre super;)

 

Aber die Fehlermeldung dürfte ja jetzt nicht mehr sagen, dass eine translation fehlt; müsste doch jetzt etwas anderes sein…

 

Hi,

leider kommt noch die gleiche Fehlermeldung, hier direkt nebeneinander

der Request-Body

 

 

und der Responce:

 

Translations müssen nochmal in ein extra Array, weil du ja immer mehrere auf einmal angeben können musst:

translations: {
    [
        'languageId': '...',
        'name': 'Kategorie 1'
    ],
    [
        'languageId': '...',
        'name': 'Kategoria 1'
    ]
}

oder noch besser über die codes

translations: {
    'de-DE':{
        'name': 'Kategorie 1'
    },
    'it-IT'{
        'name': 'Kategoria 1'
    }
}

 

Immer noch nichts:(

habe diesesmal

  • a) data als array mit einem Element

  • b) data als Objekt

  • c) ohne data sondern das Objekt direkt in den body als json gesteckt,

  • das meta/links/included rausgenommen sowie das type im Hauptobjekt, da das in der GET-Methode bei der /category auch nur im attributes-Objekt stehtd)

    {
    “id”:“3d353facf8d2406eaf0952dacb4d3491”,
    “attributes”:{
    “name”:“Category 1”,
    “parentID”:“8d0b7e9e4d4d42c29a7fc128a1b55006”,
    “displayNestedProducts”:true,
    “type”:“page”,
    “createdAt”:“2020-02-12T11:16:45.000Z”,
    “updatedAt”:“2020-02-12T11:16:45.000Z”,
    “afterCategoryId”:“c729a2057bf64743a06f06d6cbe350e3”,
    “afterCategoryVersionId”:“0fa91ce3e96a4bc2be4bd9ce752c3425”,
    “level”:1,
    “translations”:{
    “de-DE”:{
    “name”:“Kategorie 1”
    },
    “it-IT”:{
    “name”:“Kategoria 1”
    }
    }
    }
    }

 

Bleibt beim gleichen Fehler:

[
   {
      "code":"c1051bb4-d103-4f74-8988-acbcafc7fdc3",
      "status":"400",
      "detail":"This value should not be blank.",
      "template":"This value should not be blank.",
      "meta":{
         "parameters":{
            "{{ value }}":"null"
         }
      },
      "source":{
         "pointer":"\/0\/translations\/2fbb5fe2e29a4d70aa5854ce7ce3e20b\/name"
      }
   }
]

Weitere doofe Frage hier mal ein category-Object dass ich über die GET Methode zurück bekomme:

 

{
   "id":"8d0b7e9e4d4d42c29a7fc128a1b55006",
   "attributes":{
      "versionId":"0fa91ce3e96a4bc2be4bd9ce752c3425",
      "parentId":null,
      "parentVersionId":null,
      "afterCategoryId":null,
      "afterCategoryVersionId":null,
      "mediaId":null,
      "displayNestedProducts":true,
      "autoIncrement":1,
      "breadcrumb":[
         "Catalogue #1"
      ],
      "level":1,
      "path":null,
      "childCount":7,
      "type":"page",
      "visible":true,
      "active":true,
      "name":"Catalogue #1",
      "customFields":null,
      "slotConfig":null,
      "externalLink":null,
      "description":null,
      "metaTitle":null,
      "metaDescription":null,
      "keywords":null,
      "cmsPageId":"a0f61cbda7b54fd6b83e9d1624916440",
      "createdAt":"2020-01-27T11:10:52+00:00",
      "updatedAt":"2020-02-11T16:17:18+00:00",
      "translated":{
         "breadcrumb":[
            "Catalogue #1"
         ],
         "name":"Catalogue #1",
         "customFields":[

         ],
         "slotConfig":null,
         "externalLink":null,
         "description":null,
         "metaTitle":null,
         "metaDescription":null,
         "keywords":null
      },
      "_uniqueIdentifier":null,
      "extensions":[

      ]
   }
}

 

Noch jemand eine Idee?

 

translations muss nicht in attributes sondern in die erste Ebene, sonst würds ja in der Fehlermeldung so stehen: "pointer":"/0/attributes/translations/2fbb5fe2e29a4d70aa5854ce7ce3e20b/name". Hatte es auch in meiner ersten Antwort falsch, sorry. So müsste das jetzt klappen:

{
  "id": "3d353facf8d2406eaf0952dacb4d3491",
  "translations": {
    "de-DE":{
      "name": "Kategorie 1"
    },
    "it-IT"{
      "name": "Kategoria 1"
    }
  },
  "attributes": {
    "name":"Category 1",
      "parentID":"8d0b7e9e4d4d42c29a7fc128a1b55006",
      "displayNestedProducts":true,
      [...]
    }
  }
}

 

Danke an AlexGalax

geht jetzt;)

Hallo,

ich habe genau den selben Fehler. Ich bekomme Kundendaten als XML, serialisiere die zu Json und möchte die dann hochladen. In der Fehlerbeschreibung stehen einige Felder, die aber gefüllt sind. Translations hatte ich so auch nicht auf dem Schirm. Ich habe versucht, das mit in die XML-Datei einzubauen, aber ohne Erfolg. Wie sollte eine Datei aussehen, dass ich sie problemlos importieren kann?

Gibt es irgendwo eine Beschreibung der Datenbank (Tabellen, Felder, Größe, Datentypen, FK / PK, Beziehungen)?

@Loki_ schrieb:

Hallo,

ich habe genau den selben Fehler. Ich bekomme Kundendaten als XML, serialisiere die zu Json und möchte die dann hochladen. In der Fehlerbeschreibung stehen einige Felder, die aber gefüllt sind. Translations hatte ich so auch nicht auf dem Schirm. Ich habe versucht, das mit in die XML-Datei einzubauen, aber ohne Erfolg. Wie sollte eine Datei aussehen, dass ich sie problemlos importieren kann?

Gibt es irgendwo eine Beschreibung der Datenbank (Tabellen, Felder, Größe, Datentypen, FK / PK, Beziehungen)?

Was mir immer geholfen hat, im Backend selber die Aktion die ich über die API nachstellen wollte ausgeführt und im Netzwerktab geschaut habe. Damit hatte ich den genauen Aufbau des Requestes denn ich nachbilden muss um diesen 1:1 zu senden.

In den meisten Fällen klappt es dann auch. 

1 „Gefällt mir“