2015-08-11 4 views
0

Я пытаюсь загрузить некоторые светильники в своей базе данных, и я собираюсь стать сумасшедшим из-за ошибки доктрины. Это все:Symfony2 - Catchable Fatal Error - Fixtures

[Symfony\Component\Debug\Exception\ContextErrorExce ption] Catchable Fatal Error: Argument 1 passed to TuzonaBundle\Entity\Ciudades::setProvincias() must be an instance of TuzonaBundle\Entity\Provincias, string given, called in /httpdocs/src/TuzonaBundle/DataFixtures/ORM/Ciudad.php on line 141 and defined

Как вы можете видеть, проблема достаточно конкретна. Проблема в том, что мне не присваивается «setProvincias()» правильный тип данных. Я предполагаю, что правильный тип данных является целым числом, но он не работает так ... Я попытался со строкой с тем же результатом.

код как следовать

TuzonaBundle \ Entity \ 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 \ Entity \ 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; 

} 

ответ

0

Похоже, ключ проблемы о ваших слов:

I guess the right datatype is an integer, but it doesn't work like that... I tried with a string, with the same result

Нет, это не целое число.

Вы должны вызвать «setProvincias» с объектом типа Provincias. Так что если вы загружаете данные через светильники, вы должны создать несколько Provincias светильников, как

ProvinciasData.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(); 
} 

CiudadesData.php

public function load(ObjectManager $manager) 
    { 
     $ciudade = new \YourApp\TuzonaBundle\Entity\Ciudades(); 
     $ciudade->setProvincias($this->getReference('YourApp\TuzonaBundle\Entity\Provincias-1')); 
     $manager->persist($ciudade); 

     $manager->flush(); 
} 
Смежные вопросы