Hallo zusammen.
Ich entwickle aktuell ein Plugin für das Backend welches mir erlaubt, je Shop eine Servicezeit einzutragen. Das Plugin läuft weitestgehend. Es öffnet sich ein Fenster mit der Liste der Einträge und im Detailwindow kann ich die Zeit sowie den Shop über eine Combobox auswählen.
In meinem Model gibt es für den Shop ein Integerfeld zum Speichern der Shop Id. Hatte es zunächst mit ner Association probiert aber die ID reicht mir eigentlich.
Über die Methode getListQuery() im Backend Controller probiere ich nun vergeblich die Tabelle s_core_shops zu joinen und mir anhand der ID den Namen des Shops auszulesen. Mein Code sieht wie folgt aus:
use BstService\Models\ServiceTime;
use Shopware\Models\Shop\Shop;
class Shopware_Controllers_Backend_BstService extends Shopware_Controllers_Backend_Application
{
protected $model = ServiceTime::class;
protected $alias = 'servicetime';
protected function getListQuery()
{
$builder = parent::getListQuery();
$builder->innerJoin(Shop::class, 'shop', 'WITH', 'shop.id = servicetime.shop_id');
$builder->addSelect('shop.name as subShopName');
return $builder;
}
}
Rufe ich das Plugin im Backend ohne Modifikation innerhalb von getListQuery() auf, wird mir die Zeit und die ShopId angezeigt. Modifizieren ich den builder, erscheint nichts mehr.
Kann mir jemand mit nem Denkanstoß weiterhelfen?
Viele Grüße
Marco