Expected input to be non empty non associative array.
Dieser Fehler tritt häufig auf, wenn Daten über ein repository gespeichert werden sollen. Wenn die upsert
, update
oder create
Methode des repositories verwendet wird, wird ein verschachteltes Array erwartet.
Nehmen wir folgenden Code als Beispiel:
$data = [
'id' => 'abcd123...',
'name' => 'Beispiel Name'
];
$productRepository->update($data, $context);
Dieser Code würde den Fehler Expected input to be non empty non associative array
verursachen.
Die Lösung:
$data = [
'id' => 'abcd123...',
'name' => 'Beispiel Name'
];
$productRepository->update([$data], $context);
oder
$data = [
[
'id' => 'abcd123...',
'name' => 'Beispiel Name'
]
];
$productRepository->update($data, $context);
Der Grund, wieso ein verschachteltes Array übergeben muss, ist recht simpel: Es können mehrere Entities auf einmal übergeben/bearbeitet werden. Wenn kein verschachteltes Array erwartet werden würde, müsste für jede Entity ein eigenständiger Aufruf gemacht werden.