我有一个空的ArrayCollection问题。 与一对多和多对一的关系
这是品牌实体:
class Brand
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var Model[]
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Model", mappedBy="brand")
*/
private $models;
/**
* Brand constructor.
*/
public function __construct()
{
$this->models= new ArrayCollection();
}
/**
* @return Model[]|ArrayCollection
*/
public function getModels()
{
return $this->models;
}
/**
* @param Model $model
* @return $this
*/
public function addModel(Model $model)
{
$this->models[] = $model;
return $this;
}
}
这是模型实体:
class Model
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="modelName", type="string", length=60)
*/
private $modelName;
/**
* @var Brand
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Brand", inversedBy="models")
* @ORM\JoinColumn(name="brand_id", referencedColumnName="id")
*/
private $brand;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set modelName
*
* @param string $modelName
*
* @return Model
*/
public function setModelName($modelName)
{
$this->modelName = $modelName;
return $this;
}
/**
* Get modelName
*
* @return string
*/
public function getModelName()
{
return $this->modelName;
}
/**
* @param Brand $brand
* @return $this
*/
public function setBrand(Brand $brand)
{
$this->brand= $brand;
return $this;
}
/**
* @return Brand
*/
public function getBrand()
{
return $this->brand;
}
}
和控制器:
$UserRepo = $this->getDoctrine()->getRepository(Brand::class);
$all = $UserRepo->find($brandId);
Symfony不会返回任何错误。 但是,它只下载对应于$ brandId的brandName。不幸的是,ArrayCollection是空的。 有人能告诉我我犯了什么错误:(