Hallo allerseits, ich versuche gerade einfach mal als Test ein einziges Produkt aus der Datenbank zu lesen. Dafür hab ich einen Subscriber erstellt:
class MySubscriber implements EventSubscriberInterface
{
public function __construct(EntityRepositoryInterface $productRepository)
{
$this->productRepository = $productRepository;
}
public static function getSubscribedEvents(): array
{
return [
ProductEvents::PRODUCT_LOADED_EVENT => 'onProductsLoaded'
];
}
public function onProductsLoaded(EntityLoadedEvent $event): void
{
$products = $this->getProducts($event->getContext());
foreach ($event->getEntities() as $productEntity) {
$productEntity->addExtension('my_test', $products);
}
}
private function getProducts(Context $context): EntityCollection
{
$criteria = new Criteria();
$criteria->setLimit(1);
// Page starts loading infinitely when I uncomment the next line...
// $productCollection = $this->productRepository->search($criteria, $context)->getEntities();
// return $productCollection;
}
}
Services.xml:
Der Subscriber wird richtig geladen, aber wenn ich die Zeile
$productCollection = $this->productRepository->search($criteria, $context)->getEntities();
schreibe lädt mein Shop gar nicht mehr. “productRepository” ist aber wirklich das Repository, und $criteria und $context scheinen auch zu passen.
Ist bei meinem Code etwas falsch oder könnte das ein tieferes Problem sein? Danke schon mal im Voraus :)