Witam,
Tworzę stronę opartą o framework Symfony 3.0 i dotarłem do momentu, w którym nie za bardzo wiem jak go rozwiązać.
Przykładowo: mam takie encje
AbstractTaxonomy:abstract class AbstractTaxonomy
{
/**
* @ORM\Id
* @ORM\Column(type = "integer")
* @ORM\GeneratedValue(strategy = "AUTO")
*/
private $id;
/**
* @ORM\Column( type = "string", length = 240)
*/
private $name;
}
Params:class Params extends AbstractTaxonomy
{
/**
* @ORM\Column( type = "string", length = 240)
*/
private $type;
/**
* @ORM\OneToMany(targetEntity = "ParamsValue", mappedBy = "params")
*/
private $value;
/**
* @ORM\OneToMany(targetEntity = "OfferParams", mappedBy = "params")
*/
private $offer;
}
ParamsValue:class ParamsValue extends AbstractTaxonomy
{
/**
* @ORM\ManyToOne(targetEntity = "Params", inversedBy = "value")
* @ORM\JoinColumn(name = "id_params", referencedColumnName = "id")
*/
private $params;
/**
* @ORM\OneToMany(targetEntity = "OfferParams", mappedBy = "paramsValue")
*/
private $offer;
}
Offer:class Offer extends AbstractTaxonomy
{
/**
* @ORM\OneToMany(targetEntity = "OfferParams", mappedBy = "offer")
*/
private $offerParams;
}
OfferParams:class OfferParams
{
/**
* @ORM\ManyToOne(targetEntity = "Offer", inversedBy = "offerParams")
* @ORM\JoinColumn(name = "id_offer", referencedColumnName = "id")
*/
private $offer;
/**
* @ORM\ManyToOne(targetEntity = "Params", inversedBy = "offer")
* @ORM\JoinColumn(name = "id_params", referencedColumnName = "id")
*/
private $params;
/**
* @ORM\ManyToOne(targetEntity = "ParamsValue", inversedBy = "offer")
* @ORM\JoinColumn(name = "id_params_value", referencedColumnName = "id")
*/
private $paramsValue;
}
Chciałbym wygenerować teraz formularz dodania nowego rekordu dla encji Offer zakładając, że baza danych zawiera odpowiednio wartości:
Params:+-------+------------------+
| id | name |
+-------+------------------+
| 1 | Stan |
| 2 | Przeznaczenie |
+-------+------------------+
ParamsValue:+-------+------------------+----------------+
| id | name | id_params |
+-------+------------------+----------------+
| 1 | Nowe | 1 |
| 2 | Używane | 1 |
| 3 | Kuchnia | 2 |
| 4 | Łazienka | 2 |
+-------+------------------+----------------+
Jedyne rozwiązanie jakie przychodzi mi do głowy to pobranie dostępnych parametrów wraz z ich wartościami w kontrolerze i przekazanie do widoku gdzie przy użyciu pętli wygeneruje odpowiednie pola formularza np: select. Następnie podczas dodawania ogłoszenia do bazy ręcznie pobiorę wybrane wartości i dodam je do encji offerParams. Zastanawiam się czy by można było wykonać to przy pomocy formBuildera ewentualnie jakiś inny sensowny i bezpieczny sposób?
Ten post edytował Adis92 13.05.2016, 13:30:46