Moin,
ich erstelle gerade mein erstes Shopware Plugin und hoffe ihr könnt mir helfen.
Ich habe im Backend unter dem Hauptmenüpunkt “Artikel” ein Punkt “Verkaufsargumente” angelegt.
Dies funktioniert soweit auch einwandfrei:
Nun habe ich im Backend unter den Artikeln ein neues Attribut hinzugefügt:
private function createArticleAttribute() {
/** @var CrudService $service */
$service = $this->container->get('shopware_attribute.crud_service');
$service->update('s_articles_attributes', 'selling_arguments', TypeMapping::TYPE_MULTI_SELECTION, [
'label' => 'Verkaufsargumente',
'entity' => 'SellingArguments\Models\Argument',
'displayInBackend' => true,
'custom' => true,
]
);
}
Allerdings spuckt er nun im Backend immer den Wert “null” aus und nicht den der Bezeichnungen (Displayname würde mir reichen).
Ich hoffe ihr könnt mir dazu helfen.
Grüße Benjamin
Model:
time = new \DateTime();
}
public function getId() {
return $this->id;
}
public function getTime() {
return $this->time;
}
public function getCssclassname() {
return $this->cssclassname;
}
public function getDisplayname() {
return $this->displayname;
}
public function setId($id) {
$this->id = $id;
}
public function setTime($time) {
$this->time = $time;
}
public function setCssclassname($cssclassname) {
$this->cssclassname = $cssclassname;
}
public function setDisplayname($displayname) {
$this->displayname = $displayname;
}
}
Repository:
getQuestionQueryBuilder();
return $builder->getQuery();
}
public function getQuestionQueryBuilder($articleId)
{
$builder = $this->getEntityManager()->createQueryBuilder()
->select(['cssclassname', 'displayname'])
->from(Argument::class, 'argument')
->leftJoin('argument.cssclassname', 'cssclassname')
->leftJoin('argument.displayname', 'displayname')
->where('article.id = :articleId')
->setParameter('articleId', $articleId);
return $builder;
}
}
Backend Controller: