我在项目和图像之间存在一对多的关系,在项目和合适之间存在多对一的关系。我想选择procts有image.cover = 1和propriety.activated = 1但代码总是给我项目的所有图像
class ProjectImage
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
*
* @ORM\ManyToOne(targetEntity="BI\AdminBundle\Entity\Project", inversedBy="images")
* @ORM\JoinColumn(nullable=false, name="id_project", referencedColumnName="id")
*/
private $idProject;
******************
class Project
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
*
* @ORM\ManyToOne(targetEntity="BI\AdminBundle\Entity\Promoteur", inversedBy="projects")
* @ORM\JoinColumn(nullable=false, name="id_promoteur", referencedColumnName="id")
*/
private $idPromoteur;
/**
*
* @ORM\ManyToOne(targetEntity="BI\AdminBundle\Entity\Governorate")
* @ORM\JoinColumn(nullable=false, name="id_governorate")
*/
private $idGovernorate;
/**
*
* @ORM\ManyToOne(targetEntity="BI\AdminBundle\Entity\Delegation")
* @ORM\JoinColumn(nullable=true, name="id_delegation")
*/
private $idDelegation;
/**
* @ORM\ManyToOne(targetEntity="BI\AdminBundle\Entity\Locality")
* @ORM\JoinColumn(nullable=true, name="id_locality")
*/
private $idLocality;
/**
* @ORM\OneToMany(targetEntity="BI\AdminBundle\Entity\ProjectImage", mappedBy="idProject",cascade={"persist", "remove", "merge"})
*/
private $images;
**********************************
class Promoteur
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity = "BI\AdminBundle\Entity\Project", mappedBy = "idPromoteur")
*/
private $projects;
答案 0 :(得分:0)
在OneToMany关联上,您应该使用ArrayCollection,因为您可以在此端存储目标实体的多个实例。您还应该导入ArrayCollection类并在构造函数中实例化此集合。
因此,在Project类中,您可能希望添加以下内容:
use Doctrine\Common\Collections\ArrayCollection;
/**
* @var ArrayCollection
* @ORM\OneToMany(targetEntity="BI\AdminBundle\Entity\ProjectImage",
mappedBy="idProject",cascade={"persist", "remove", "merge"})
*/
private $images;
public function __construct() {
$this->images = new ArrayCollection();
}
然后,您可以使用app/console doctrine:generate:entities
生成getter和setter。此命令还将创建另外两种方法addImage
和removeImage
来管理您的收藏。
希望这会有所帮助