我需要使用Sonata Admin& amp;修改Symfony3项目。教义。
问题在于“addTexture”方法,以前的开发人员做过:
public function addTexture(\AppBundle\Entity\Texture $texture)
{
if (count($this->textures[]) < 26)
$this->textures[] = $texture;
return $this;
}
我们可以添加超过25种纹理:这是我的错误。
所以我添加了一个转储($ this-&gt; textures);出口;什么也没发生,应用程序永远不会达到此目的在其他实体中,达到了“添加”方法。
编辑:
似乎是我的Doctrine2 ArrayCollection从未触发我的所有addXXX方法。但它将我的馆藏保存在数据库中,我不知道为什么。
编辑2 :
我找到了声明列表的位置:
->add('colors','sonata_type_model', [
'multiple' => true,
'expanded' => false,
'property' => 'Name'
])
有没有办法添加限制或最大项目?然后,如果它的UI受限制,我将不需要更新实体。
答案 0 :(得分:0)
尝试使用ArrayCollection方法(让我们说我们处理Color Entity):
public function addTexture(\AppBundle\Entity\Texture $texture)
{
if ($this->textures->count() < 26) {
$this->textures->add($texture);
$texture->setColor($this); //Add this if you have bidirectional mapping
}
return $this;
}