2017-09-13 36 views
0

我用DoctrineFixturesBundle來填充我的數據庫中的50000條記錄。我想讓一位老闆有很多員工。但現在當我充滿了我的分貝我有boss_id只有空值 我的加載功能:多對一的自我參考的數據夾具

public function load(ObjectManager $manager) 
    { 

     for ($i = 0; $i <= 50000; $i++) { 
      $employee = new Employee(); 
      if($i == 0) { 
       $employee->setPosition('founder'); 
      } 
      $employee->setFullName('new employee'.$i); 
      $employee->setSalary(50000 - $i); 
      $employee->setStartDate(new \DateTime()); 
      if($i > 0) { 
       $employee->setBoss($manager->find(Employee::class,1)); 
       $employee->setPosition('boss'); 
      } elseif ($i >= 1000) { 
       $id = rand(2,1000); 
       $employee->setBoss($manager->find(Employee::class,$id)); 
       $employee->setPosition('top-manager'); 
      } elseif ($i >= 5000) { 
       $id = rand (1000,4999); 
       $employee->setBoss($manager->find(Employee::class,$id)); 
       $employee->setPosition('manager'); 
      } elseif ($i >= 10000){ 
       $id = rand(5000,9999); 
       $employee->setBoss($manager->find(Employee::class,$id)); 
       $employee->setPosition('worker'); 
      } 
      $manager->persist($employee); 

     } 
     $manager->flush(); 
    } 

我的實體員工:

/** 
    * @var Employee 
    * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee") 
    */ 
    private $boss; 
public function setBoss(\AppBundle\Entity\Employee $boss = null) 
    { 
     $this->boss = $boss; 

     return $this; 
    } 

我該怎麼辦這一招?我做錯了什麼?

回答

0

這是因爲尚未創建對象時,你使用它

使用the doc

作爲解釋 addReference