Id Name 1 Płatność 2 Płatność przelewem z góry 3 Płatność przelewem z góry 4 Płatność za pobraniem 5 Płatność gotówką 6 Płatność przelewem z góry
Pytanie:
W jaki sposób zrobić selecta w formsie za pomocą query building, aby pokazał wszystkie dane, pomijając powtarzające się wartości z kolumny "Name"?
Próbuje w ten sposób:
class OrdersType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ { $builder ... 'query_builder' => function (\Doctrine\ORM\EntityRepository $r) { $queryBuilder = $r->createQueryBuilder('c'); $query = $queryBuilder ->where($queryBuilder->expr()-> .... ('c.name')) // tutaj sie zacialem ; return $query; } )) ->add('orderShipment') ... ; }
Moja encja z płatnościami wygląda mniej więcej tak:
/** * Payments * * @ORM\Table() * @ORM\Entity */ class Payments { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var string * * @Assert\NotBlank() * @ORM\Column(name="name", type="string", length=255) */ private $name; /** * @var string * * @ORM\Column(name="description", type="string", length=255, nullable=true) */ private $description; /** * @var string * * @ORM\Column(name="summary_description", type="text", nullable=true) */ private $summaryDescription; /** * @var boolean * * @ORM\Column(name="is_active", type="boolean", options={"default":1}) */ private $isActive; /** * @ORM\OneToMany(targetEntity = "Orders", mappedBy = "orderPayment") * */ protected $orders; /** * @Assert\NotBlank() * @ORM\ManyToOne(targetEntity="Ml\FrontendBundle\Entity\Shipments", inversedBy="payments", cascade={"persist"}) * @ORM\JoinColumn(name="shipment_id", referencedColumnName="id", nullable=false) **/ protected $shipments; public function __toString() { return $this->name; } /** * Constructor */ public function __construct() { $this->orders = new \Doctrine\Common\Collections\ArrayCollection(); } ... }
/** * Orders * * @ORM\Table() * @ORM\Entity(repositoryClass="Ml\BackendBundle\Entity\OrdersRepository") */ class Orders { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @Assert\NotBlank * @ORM\ManyToOne(targetEntity="Ml\UserBundle\Entity\User", inversedBy="orders") * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false) * */ protected $user; /** * @Assert\NotBlank * @ORM\ManyToOne(targetEntity="Payments", inversedBy="orders") * @ORM\JoinColumn(name="order_payment_id", referencedColumnName="id", nullable=false) * */ protected $orderPayment; /** * @Assert\NotBlank * @ORM\ManyToOne(targetEntity="Shipments", inversedBy="orders") * @ORM\JoinColumn(name="order_shipment_id", referencedColumnName="id", nullable=false) * */ protected $orderShipment; ... }
Prosze o jakas wskazowke.