Mam trzy elementy, ChannelEntity -> MatchChannelEntity < - MatchEntity, MatchChannelEntity zapisuje wiele do wielu relacji między dwiema innymi tabelami, chcę formularz do listy wszystkich kanałów za pomocą pola wyboru, a jeśli mecz ma jeden z kanałów, pole wyboru tego kanału jest zaznaczone, w jaki sposób mogę to zrobić?Jak ustawić wiele do wielu form w Symfony2
Oto kod typu Postać:
class MatchhType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('channels', 'entity', array('label' => 'Channels',
'class' => 'Mikay\MikiBundle\Entity\Channel',
'multiple' => true,
'expanded' => true,
'query_builder' => function ($repository)
{
return $repository->createQueryBuilder('c')->orderBy('c.name', 'ASC');
},))
typu MatchChannel:
class MatchChannel
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer $match_id
* @ORM\ManyToOne(targetEntity="Matchh", inversedBy="channels")
* @ORM\JoinColumn(name="match_id", referencedColumnName="id", nullable="true")
*/
private $match;
/**
* @var integer $channel_id
*
* @ORM\ManyToOne(targetEntity="Channel", inversedBy="mathces")
* @ORM\JoinColumn(name="channel_id", referencedColumnName="id", nullable="true")
*/
private $channel;
będzie używać przykładu w celu wyjaśnienia, na przykład, że posiada trzy kanały: kanał A, kanał B i kanał C i jeden mecz: mecz M, mecz M ma jeden kanał A, relacja jest zapisana w tabeli match_channel, chcę, aby formularz dopasowania pokazywał wszystkie kanały, a kanał A jest sprawdzany, ponieważ jest własnością meczu M inne pozostaną niezaznaczone
co potrzeba podmiotu typ pola: http://symfony.com/doc/current/reference/forms/types/entity.html – Nanocom
Używam typ pola podmiotu, ale moja sytuacja jest o wiele bardziej skomplikowana, chcę tylko wyświetlić listę wszystkich kanałów z tabeli kanałów i sprawdzić te (zapisane w tabeli match_channel), które posiada. – imikay
Możesz pobrać kanały z tabeli kanałów w ramach definicji typu pola, sprawdź mój link. W każdym razie, jeśli chcesz uzyskać szczegółową odpowiedź, zdecydowanie musisz pokazać kod i szczegółowo wyjaśnić swój problem. – Nanocom