Mějme zhruba toto:
/**
* @entity
*/
class Collection
{
/**
* @ManyToMany(targetEntity="Item", mappedBy="collections")
*/
private $items;
}
/**
* @entity
*/
class Item
{
/**
* @ManyToMany(targetEntity="Collections", inversedBy="items")
* @JoinTable(name="items_collections",
* joinColumns={@JoinColumn(name="item_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="collection_id", referencedColumnName="id")}
* )
*/
private $collections;
}
Což je jednoduchá asociace M:N. Jenomže nyní jsem narazil na potřebu řadit položky v koleckci. Jediné řešení které mě zatím napadlo je symulovat si JoinTable nějákou entitou s 1:N vazbami na kolekce a položky.
Napadá někoho něco lepšího?
Editoval vrtak-cz (14. 10. 2010 7:31)
Sorry my bad english.
Vrtak-CZ | Nella Project | Osobní Blog | Twitter | LinkedIn | GitHub
„Nastala chyba která neměla nastat“ aneb „Když se chce
všechno jde.“
Jenomže nyní jsem narazil na potřebu řadit položky v koleckci.
Anotace @orderBy by nepomohla?
Jan Tichý | Medio Interactive | Medio blog | PHP Guru | Osobní blog | Twitter | Facebook | LinkedIn
nepomohla protože potřebuji customizovatelné řazení (Možnost změnit pořadí v administraci).
Sorry my bad english.
Vrtak-CZ | Nella Project | Osobní Blog | Twitter | LinkedIn | GitHub
„Nastala chyba která neměla nastat“ aneb „Když se chce
všechno jde.“
Tak v tom případě klasicky přes DQL.
Jan Tichý | Medio Interactive | Medio blog | PHP Guru | Osobní blog | Twitter | Facebook | LinkedIn
Jasné to vím… Mě jde spíš o to ukládání informací o pozici. Protože tahle informace má smysl pouze v asociaci. Jinak je na nic. (v jedné kolekci totiž může být položka první v jiné kolekci uprostřed a v další na konci).
Sorry my bad english.
Vrtak-CZ | Nella Project | Osobní Blog | Twitter | LinkedIn | GitHub
„Nastala chyba která neměla nastat“ aneb „Když se chce
všechno jde.“
tohle by musela na vlastnící straně řešit nějaká OrderableCollection ve spolupráci s mapperem. v Doctrine a možná, že ani v žádném jiném ORM asi podpora téhle feature nebude
Právě proto se ptám jestli existuje lepší způsob než použít „JoinTable entitu“. Jak se zdá tak ne.
Sorry my bad english.
Vrtak-CZ | Nella Project | Osobní Blog | Twitter | LinkedIn | GitHub
„Nastala chyba která neměla nastat“ aneb „Když se chce
všechno jde.“