Symfony2 - 可捕获的致命错误 - 固定装置

时间:2015-08-11 16:42:38

标签: symfony orm doctrine-orm

我正在尝试在我的数据库中加载一些灯具,由于教条错误,我会变得疯狂。就是这样:

  

[Symfony \ Component \ Debug \ Exception \ ContextErrorExce ption] Catchable   致命错误:参数1传递给   TuzonaBundle \ Entity \ Ciudades :: setProvincias()必须是。的实例   TuzonaBundle \ Entity \ Provincias,给出的字符串,调用   第141行的/httpdocs/src/TuzonaBundle/DataFixtures/ORM/Ciudad.php和   定义

如您所见,问题非常具体。问题是我没有被赋予setProvincias()'正确的数据类型。我猜正确的数据类型是一个整数,但它并没有像那样工作......我尝试了一个字符串,结果相同。

代码如下

TuzonaBundle \实体\ Ciudades.php

class Ciudades
{
    /**
    * @ORM\ManyToOne(targetEntity="Provincias", inversedBy="ciudades")
    * @ORM\JoinColumn(name="id_provincia", referencedColumnName="id")
    */
    protected $provincias;

    /**
    * Set provincias
    *
    * @param \TuzonaBundle\Entity\Provincias $provincias
    * @return Ciudades
    */
    public function setProvincias(\TuzonaBundle\Entity\Provincias $provincias = null)
    {
    $this->provincias = $provincias;

    return $this;
    }

}

TuzonaBundle \实体\ Provincias

class Provincias
{

    /**
    * @ORM\OneToMany(targetEntity="ciudades", mappedBy="provincias")
    */
    protected $ciudades;

    /**
    * @var integer
    *
    * @ORM\Column(name="id", type="integer")
    * @ORM\Id
    * @ORM\GeneratedValue(strategy="AUTO")
    */
    private $id;

}

1 个答案:

答案 0 :(得分:0)

看起来问题的关键在于你的话:

  

我猜正确的数据类型是一个整数,但它不起作用   那...我尝试了一个字符串,结果相同

不,它不是整数。

你应该打电话给" setProvincias"使用Provincias数据类型的对象。 因此,如果您通过灯具加载数据,则应创建一些Provincias灯具,例如

ProvinciasData.php

--help

CiudadesData.php

public function load(ObjectManager $manager)
    {
        $province = new \YourApp\TuzonaBundle\Entity\Provincias();
        $this->addReference('YourApp\TuzonaBundle\Entity\Provincias-1', $province);
        $manager->persist($province);
        $manager->flush();
}