我有三個實體,ChannelEntity - > MatchChannelEntity < - MatchEntity,MatchChannelEntity保存另外兩個表格之間的多對多關係,我想要一個表單來列出所有使用的通道複選框,如果一個匹配有一個頻道,該頻道的複選框被選中,我該怎麼做?如何在Symfony2中設置多對多的表格
下面是Form類型代碼:
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');
},))
的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;
我將用一個例子來說明,比方說,我有三個信道:信道A,信道B和通道C和一個匹配:匹配M,匹配M有一個通道A,這個關係保存在match_channel表中,我想要一個匹配表單來顯示所有通道,並且通道A被檢查,因爲它由M ,其他人保持不加抑制
您需要實體字段類型:http://symfony.com/doc/current/reference/forms/types/entity.html – Nanocom 2012-03-04 11:24:54
我正在使用實體字段類型,但我的情況要複雜得多,我想要列出頻道表中的所有頻道,並檢查比賽擁有的頻道(保存在match_channel表中)。 – imikay 2012-03-04 12:51:29
您可以從字段類型定義中的頻道表中檢索頻道,然後檢查我的鏈接。無論如何,如果你想得到詳細的答案,你肯定需要展示一些代碼並詳細解釋你的問題。 – Nanocom 2012-03-04 13:58:10