我有三个实体,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