Hallo zusammen,
Ich habe eine Frage zur Sortierung im Listing:
Varianten werden nicht zwischen den Hauptprodukten sortiert. Warum? Die Hauptprodukte werden richtig sortiert. Sobald ein Variantenprodukt dazu kommt, funktioniert es nicht mehr.
Das sind meine Code-Ausschnitte:
class ProductExtension extends EntityExtension
{
public function extendFields(FieldCollection $collection): void
{
$collection->add(
(new SortOneToMany(
‚mbdusSort‘,
ProductCategoriesSortDefinition::class,
‚product_id‘,
‚id‘
))->addFlags(new Extension())
);
}
public function getDefinitionClass(): string
{
return ProductDefinition::class;
}
}
class ProductCategoriesSortDefinition extends EntityDefinition
{
public function getEntityName(): string
{
return 'mbdus_productcategoriessort';
}
protected function defineFields(): FieldCollection
{
return new FieldCollection([
(new IdField('id', 'id'))->addFlags(new Required(), new PrimaryKey()),
(new FkField('product_id', 'productId', ProductDefinition::class))->addFlags(new Required()),
(new FkField('category_id', 'categoryId', CategoryDefinition::class))->addFlags(new Required()),
(new IntField('sort', 'sort'))->addFlags(new Required()),
(new ManyToOneAssociationField('product', 'product_id', ProductDefinition::class, 'id')),
(new ManyToOneAssociationField('category', 'category_id', CategoryDefinition::class, 'id')),
]);
}
}
public static function getSubscribedEvents()
{
return [
ProductListingCriteriaEvent::class => ‚addCriteria‘
];
}
$productListingCriteriaEvent->getCriteria()->resetSorting();
$productListingCriteriaEvent->getCriteria()->addSorting(new FieldSorting(‚mbdusSort.sort‘, FieldSorting::ASCENDING));
Was kann ich machen, um Varianten, die in der Datenbank mit der parent_id stehen, auch mit zu berücksichtigen?