Hallo liebe Shopware-Community,
ich arbeite gerade an der Plugin-Konfiguration. Ziel ist es, ein Album über ein Select-Feld auszuwählen. Gespeichert werden soll dann die AlbumID.
Das Laden und Anzeigen der verfügbaren Alben funktioniert.
Aktuell wird leider immer der angezeigte Wert der Select-Box gespeichert - das bringt leider gar nichts.
Schon bei saveForm-Request im Backend sehe ich, dass value nicht gesetzt wurde - aber was fehlt?
Das xml-Element sieht so aus. Ob ich die Felder mit oder ohne Typ angebe, ändert leider nichts.
consultantAlbum
Album-ID
Album-ID
Die Proxy-Url bekommt die Daten über diese Funktion. Die Anhänge sind nur zum Testen, welcher Wert denn genommen wird.
public function getAlbumsAction()
{
$builder = Shopware()->Models()->createQueryBuilder();
$builder->select(['album'])
->from(Album::class, 'album')
->orderBy('album.position', 'ASC');
$albums = $builder->getQuery()->getResult();
$data = [];
/** @var \Shopware\Models\Media\Album $album */
foreach ($albums as $album) {
$data[] = [
'id' => $album->getId(),
'key' => $album->getId(),
'value' => $album->getId(),
'label' => $album->getName() . '-Label',
'display' => $album->getName() . '-Display',
'name' => $album->getName() . '-Name',
];
}
$this->View()->assign(['success' => true, 'data' => $data, 'total' => count($albums)]);
}
Bisher ist es ausschließlich der (vermutliche Fallback) name-Wert.
Was fehlt, damit in der Tabelle s_core_config_values endlich die ID hinterlegt wird?
Viele Grüße aus dem Westerwald,
Arnd