Uestla/YetORM M:N order by

- Томас
 - Člen | 85
 
Dobrý den,
používám YetORM https://github.com/uestla/YetORM a
řeším s tím už delší dobu takový problém.
Jak řešit order by přímo v entitě, když chci získat data co
jsou M:N?
Můj kód je asi takový:
class CategoryEntity extends Entity
{
    public function getProducts()
    {
		$selection = $this->toRecord()->related("product_x_category", "category_id");
		return (new \YetORM\EntityCollection(
            $selection,
            self::getClass("ProductEntity"),
            "products",
            "product_id"
        ));
	}
}
Funguje to krásně, nicméně jak do toho nacpat order by, aby produkty byly seřazeny podle jejich pozic? Zkoušel jsem logicky následující:
return (new \YetORM\EntityCollection(
            $selection,
            self::getClass("ProductEntity"),
            "products",
            "product_id"
        ))->orderBy("position");
Nicméně mi vyjede hláška, že tabulka neobsauje sloupec position, protože se snaží získat position z tabulky product_x_category, kde samozřejmě není – je až v products…
Věděl by někdo jak na to? Je mi jasné, že to lze jednoduše vyřešit pomocí repository, ale potřeboval bych zachovat to, že se mi vrátí objekty třídy ProductEntity a ne DB rows.
Děkuju za Vaše rady.

- Pavel Kravčík
 - Člen | 1206
 
EntityCollection má orderBy(). https://github.com/…llection.php
Problém je návrh databáze. YetORM je lightweight, na tohle použij Doctrine.

- Томас
 - Člen | 85
 
Pavel Kravčík napsal(a):
EntityCollection má orderBy(). https://github.com/…llection.php
Problém je návrh databáze. YetORM je lightweight, na tohle použij Doctrine.
takže nejednodušší způsob v tuto chvíli je napsat si dotaz sám v repository a hold se spokojit s tím, že mi to nevrátí entity?
(nemůžu teď convertovat na doctrine a potřebuju to mít hotové ideálně včera :D)