Symfony ManyToMany查询获取分段错误

时间:2016-09-08 22:29:03

标签: php symfony

我有一个特定的问题,我尝试了一切,但无法找到解决方法。 我在浏览器和apache error_log中遇到此错误ERR_EMPTY_RESPONSE [Thu Sep 08 16:07:55.896191 2016] [核心:通知] [pid 834] AH00052:子pid 844退出信号分段错误(11)

我的代码:

class Trainer
{

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

       /**
       * @ORM\ManyToMany(targetEntity="AppBundle\Entity\Unit")
       * @ORM\JoinTable(name="trainer_unit",
       *      joinColumns={@ORM\JoinColumn(name="trainer_id", referencedColumnName="trainer_id")},
       *      inverseJoinColumns={@ORM\JoinColumn(name="unit_id", referencedColumnName="unit_id")}
       * )
       */
       protected $units;

       public function __construct()
       {
              $this->units = new ArrayCollection();
       } 
}

当我尝试使用

时问题就出现了
 $em = $this->getDoctrine()->getManager();
 $trainer = $em->getRepository('AppBundle:Trainer')->find($id);
 dump($trainer); //no errors


 dump($trainer->getUnits()); // *** ERROR 
 //or 
 $trainer->getUnits()->add($unit); // *** ERROR 

我使用的是PHP 5.5,Symfony 3,AMMPS 3.5

提前致谢

1 个答案:

答案 0 :(得分:0)

您收到错误,因为$ trainer可以是结果集。 然后你需要迭代它。

试试这个:

foreach( $trainer as $t ){
    dump( $t->getUnits() );
}

我认为它应该有用,但不能保证。

编辑#2 根据评论。

你也可以尝试一下,看看结果是否不同:

$repository = $this->getDoctrine()->getRepository('AppBundle:Trainer');
$trainer = $repository->find($id);

编辑#3 根据评论。

dump($trainer)
TrainerController.php on line 104:
   Trainer {#704 ▼
     -trainerName: "Gisele"
     -trainerId: 2
     #units: PersistentCollection {#751 ▼
       -snapshot: []
       -owner: CletTrainer {#704}
       -association: array:19 [ …19]
       -em: EntityManager {#522 …11}
       -backRefFieldName: null
       -typeClass: ClassMetadata {#706 …}
       -isDirty: false
       #collection: ArrayCollection {#752 ▶}
       #initialized: false
     }
  }
  dump($trainer->getUnits())

clet.localhost.com页面无效

clet.localhost.com没有发送任何数据。 ERR_EMPTY_RESPONSE

相同的apache错误

编辑#4

clet.localhost.com是我的域名,我的/ web链接到该域名。 我正在尝试更新培训师,我在那里放置转储以找出问题

browser error

apache error - error_log