2016-09-08 4 views
0

Ich habe ein spezifisches Problem, dass ich alles versucht habe, aber keinen Weg finden, es zu beheben. Ich habe diesen Fehler ERR_EMPTY_RESPONSE im Browser und in der Apache error_log [Do Sep 08 16: 07: 55.896191 2016] [Kern: Mitteilung] [PID 834] AH00052: Kind PID 844 Ausgang Signal Segmentierung Fehler (11)Symfony ManyToMany Abfrage bekommen Segmentierung Fehler

Mein Code:

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

Das Problem begann, als ich

$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 

zu verwenden, habe ich versucht, PHP bin mit 5,5, Symfony 3, AMMPS 3.5

Vielen Dank im Voraus

Antwort

0

Sie erhalten den Fehler, weil $ Trainer ein Ergebnissatz sein kann. Sie müssen dann durchlaufen.

Try this:

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

Ich denke, es sollte funktionieren, aber keine Garantien.

EDIT # 2 Basierend auf Kommentaren.

Können Sie dies auch zu sehen, ob das Ergebnis anders ist:

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

EDIT # 3 Basierend auf Kommentare.

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()) 

Die clet.localhost.com Seite

clet.localhost.com nicht funktioniert keine Daten nicht senden. ERR_EMPTY_RESPONSE

Same Apache Fehler

EDIT # 4

clet.localhost.com ist meine Domäne, wo mein/Web verknüpft ist. Ich versuche, einen Trainer zu aktualisieren, wo ich den Dump gesetzt, das Problem herauszufinden

browser error

apache error - error_log

+0

Sorry, das ist nicht das Problem. Funktioniert auch nicht, wenn ich verwenden $ form = $ this-> createForm (TrainerForm :: Klasse, $ Trainer); Wenn das Formular nicht über die Einheiten verfügt, arbeiten Sie gut – user1840570

+0

Was möchten Sie erreichen? Es scheint, dass Sie zusätzlichen Code haben, den Sie uns in der Post nicht gezeigt haben. –

+0

Hallo Alvin, tut mir leid. Ich möchte erreichen, viele Einheiten für einen Trainer oder viele Trainer zu einer Einheit. Der $ trainer ist kein Ergebnissatz, ist ein Trainer-Objekt. – user1840570