首先感谢您的帮助。
这是我的实体:
class Salon {
/**
* @ORMManyToMany(targetEntity="ScreenfonyDemoBundleEntityExposant", cascade={"persist"})
*/
private $exposants;
第二个:
class Exposant{
/**
* @var integer
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
我想为一个博览会者创建一个表单,他将能够看到他的沙龙的收藏(添加和删除一些)。
首先,我被要求获得所有沙龙的曝光者。我尝试了,但没有工作:
$exposant = $this ->getDoctrine()
->getManager()
->getRepository('ScreenfonyDemoBundle:Exposant')
->findOneBy(array('user' => $id));
$exposant_id = $exposant->getId();
$salons = $this ->getDoctrine()
->getManager()
->getRepository('ScreenfonyDemoBundle:Salon');
$my_salons = new DoctrineCommonCollectionsArrayCollection();
foreach ($salons as $salon) {
if($salon->getExposants()->contains($exposant_id)){
$mes_salons->add($salon);
}
}
然后我想把结果添加到一个表格中,并处理一个暴露者的新沙龙的请求。
thanks of your help
在类暴露中,它缺少创建中间表exposant_salon
:
class Exposant{
/**
* @var integer
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORMManyToMany(targetEntity="ScreenfonyDemoBundleEntitysalon", inversedBy="exposants", cascade={"persist"})
* @ORMJoinTable(name="exposant_salon",
* joinColumns={@ORMJoinColumn(name="id_exposant", referencedColumnName="id")},
* inverseJoinColumns={@ORMJoinColumn(name="id_salon", referencedColumnName="id")}
* )
*/
private $salons;
在实体中创建getsalon()方法后:
public function getSalons()
{
return $this->salons;
}
恢复暴露的沙龙做如下:
$my_salons = $exposant->getSalons();