Ho una classe di prodotto che contiene molti campi per ManyToMany, come ingredienti, dimensioni, specie, ecc. Un totale di circa 14 campi diversi Non tutti i campi sono rilevante per ciascun prodotto.Come ordinare su OneToMany/ManyToOne
ho mappatura istituito come questo
Class product {
/**
* @var Species[]
* @ORM\ManyToMany(targetEntity="Species")
* @ORM\JoinTable(name="product_species",
* joinColumns={@ORM\JoinColumn(name="productId", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="speciesId", referencedColumnName="id")}
* )
* @ORM\OrderBy({"name" = "asc"})
*/
private $species;
Questa grande opera per un ManyToMany/manyto uno.
il problema è nel mio tavolo product_ingredients avevo bisogno di aggiungere un campo aggiuntivo, il che significa necessità di passare da ManyToMany ad un OneToMany/ManyToOne Così come questo
/**
* @var ProductIngredient[]
*
* @ORM\OneToMany(targetEntity="ProductIngredient", mappedBy="product")
* @ORM\JoinColumn(name="productId", referencedColumnName="id")
*/
private $ingredients;
Ora il mio ProductIngredient entità appare come questa
Quindi nella mia classe di prodotto per le specie io uso il @ORM \ OrderBy in modo che la specie sia già ordinata .. C'è un modo in cui posso farlo in qualche modo anche per il campo degli ingredienti?
O sto facendo la mia logica sbagliata e questi non dovrebbero nemmeno essere campi sulla classe del prodotto e dovrebbero invece essere ricercati dal repository?
mi mancava che sia facile così ho potuto scorrere i miei oggetti come $product->getIngredients()
invece di fare
$ingredients = $this->getDoctrine()->getRepository('ProductIngredient')->findByProduct($product->getId());
questo genera un errore (UNREC campo individuato: nome) perché "nome" non esiste in ProductIngredient È in Entità ingrediente. – Kris
questo è un errore negli altri mapping non in questo ... –
Puoi farmi un esempio? La mia entità prodotto si connette a ProductIngredient, che si connette a Ingredient. Ho provato a fare il orderby nella classe productingredient ma dal momento che è un manytoone viene ignorato – Kris