Hey Jungs und Mädels,
ich brauche erneut eure Hilfe…
Ich habe ein Backend-Plugin entwickelt, welches einen weiteren Tab in der Artikeldetailansicht einfügt und auch soweit funktionert. Mein einziges Problem: Ich brauche in meinem Backend-Controller in der ListAction die ID des aktuell angezeigten Artikels. Leider ist diese nicht im Request enthalten. Ich weiß nicht, wie ich die ID dort hinzufüge oder einzeln abfrage.
Kann mir da jemand helfen und einmal schauen, ob ich irgendwo was übersehen/vergessen habe?
Hier mein Backend-Controller:
Request()->getParam('limit', 30);
$offset = $this->Request()->getParam('start', 0);
$sort = $this->Request()->getParam('sort', null);
error_log(print_r($this->Request(), true));
$article = $this->Request()->getParam('id', null);
error_log("Article: " . print_r($article));
$builder = Shopware()->Models()->createQueryBuilder();
$builder->select('b.id, b.ktype, b.hsn, b.tsn, b.herstellerKlartext, b.handelsname, b.zuteilungsdatumTn, b.fahrzeugklasse, b.nennleistungInKW, b.maxHubraumInCM, b.maxTechnischZulassigeGesamtmasse, b.modellbezeichnung, kba.selected, kba.comment')
->from('SoftwKbaManager\Models\Cars', 'b')
->leftJoin('HzweiaKbaAddon\Models\KbaMapping', 'kba', 'WITH', 'kba.ktype = b.ktype');
//
if (!empty($sort)) {
if(($sort[0]['property'] == 'selected') || ($sort[0]['property'] == 'comment')) {
$sort[0]['property'] = 'kba.' . $sort[0]['property'];
} else {
$sort[0]['property'] = 'b.' . $sort[0]['property'];
}
$builder->addOrderBy($sort);
}
$builder->setFirstResult($offset)
->setMaxResults($limit);
// $query_result = \Doctrine\Common\Util\Debug::dump($builder->getQuery());
$query = $builder->getQuery();
// error_log('Query: ' . $query_result);
$query->setHydrationMode(\Doctrine\ORM\AbstractQuery::HYDRATE_ARRAY);
$paginator = Shopware()->Container()->get('Models')->createPaginator($query);
$total = $paginator->count();
$data = $query->getArrayResult();
error_log("Data: " . $data);
// sends the out put to the view
$this->View()->assign(array(
'success' => true,
'data' => $data,
'total' => $total
));
}
/**
* @throws Exception
*/
public function updateListAction()
{
try {
Shopware()->Models()->flush();
} catch (\Doctrine\ORM\OptimisticLockException $e) {
$this->View()->assign(
array(
'success' => false,
'message' => "Fehler " . print_r($e, true)
)
);
}
$this->View()->assign(array(
'success' => true
));
}
}