fields table:
productgroup table:
In my Controller I load my fields_array like this:
$fields_array = $this->getDoctrine()->getRepository(class::fields)->findAll();
If fields and productgroup are not connected my fields_array looks like this:
array:2 [▼
0 => Fields {#7460 ▼
-id: 3
-name: "cat"
-unique_id: "5a38c820ed"
-productgroup: PersistentCollection {#7464 ▼
-snapshot: []
-owner: Fields {#7460}
-association: array:20 [ …20]
-em: EntityManager {#2815 …11}
-backRefFieldName: "fields"
-typeClass: ClassMetadata {#6494 …}
-isDirty: false
#collection: ArrayCollection {#7465 ▼
-elements: []
}
#initialized: false
}
-type: Type {#7541 ▶}
}
1 => Fields {#7542 ▼
-id: 4
-name: "horse"
-unique_id: "bd7762b0e6"
-productgroup: PersistentCollection {#7543 ▼
-snapshot: []
-owner: Fields {#7542}
-association: array:20 [ …20]
-em: EntityManager {#2815 …11}
-backRefFieldName: "fields"
-typeClass: ClassMetadata {#6494 …}
-isDirty: false
#collection: ArrayCollection {#7544 ▼
-elements: []
}
#initialized: false
}
-type: Type {#7545 ▶}
}
]
As you see the ArrayCollecton does not contain any elements.
So now I connect cat with the productgroup Animals. So my table fields_productgroup looks like this:
Now as you see, my ArrayCollection of cat contains the element Animals:
array:2 [▼
0 => Fields {#7460 ▼
-id: 3
-name: "cat"
-unique_id: "5a38c820ed"
-productgroup: PersistentCollection {#7464 ▼
-snapshot: array:1 [ …1]
-owner: Fields {#7460}
-association: array:20 [ …20]
-em: EntityManager {#2815 …11}
-backRefFieldName: "fields"
-typeClass: ClassMetadata {#6494 …}
-isDirty: false
#collection: ArrayCollection {#7465 ▼
-elements: array:1 [▼
0 => Productgroup {#7146 ▼
-id: 6
-name: "Animals"
-unique_id: "9e4ef1c46f"
-fields: PersistentCollection {#7357 ▶}
}
]
}
#initialized: true
}
-type: Type {#7541 ▶}
}
1 => Fields {#7542 ▼
-id: 4
-name: "horse"
-unique_id: "bd7762b0e6"
-productgroup: PersistentCollection {#7543 ▼
-snapshot: []
-owner: Fields {#7542}
-association: array:20 [ …20]
-em: EntityManager {#2815 …11}
-backRefFieldName: "fields"
-typeClass: ClassMetadata {#6494 …}
-isDirty: false
#collection: ArrayCollection {#7544 ▼
-elements: []
}
#initialized: false
}
-type: Type {#7545 ▶}
}
]
Now I connect horse also with the productgroup Animals. So my table fields_productgroup looks like this:
My fields_array for horse shows, that there is an element in the ArrayCollection but it does not contain the information for Animals. It is just an empty array... But I actually need the information to which productgroup horse is connected
array:2 [▼
0 => Fields {#7460 ▼
-id: 3
-name: "cat"
-unique_id: "5a38c820ed"
-productgroup: PersistentCollection {#7464 ▼
-snapshot: array:1 [ …1]
-owner: Fields {#7460}
-association: array:20 [ …20]
-em: EntityManager {#2815 …11}
-backRefFieldName: "fields"
-typeClass: ClassMetadata {#6494 …}
-isDirty: false
#collection: ArrayCollection {#7465 ▼
-elements: array:1 [▼
0 => Productgroup {#7146 ▼
-id: 6
-name: "Animals"
-unique_id: "9e4ef1c46f"
-fields: PersistentCollection {#7357 ▶}
}
]
}
#initialized: true
}
-type: Type {#7541 ▶}
}
1 => Fields {#7542 ▼
-id: 4
-name: "horse"
-unique_id: "bd7762b0e6"
-productgroup: PersistentCollection {#7543 ▼
-snapshot: array:1 [ …1]
-owner: Fields {#7542}
-association: array:20 [ …20]
-em: EntityManager {#2815 …11}
-backRefFieldName: "fields"
-typeClass: ClassMetadata {#6494 …}
-isDirty: false
#collection: ArrayCollection {#7544 ▼
-elements: array:1 [▼
0 => Productgroup {#7146}
]
}
#initialized: true
}
-type: Type {#7545 ▶}
}
]
My fields entity:
/**
* @ORM\ManyToMany(targetEntity="Productgroup", inversedBy="fields")
* @ORM\JoinColumn(name="productgroup", referencedColumnName="id")
*/
private $productgroup;
public function getProductgroup()
{
return $this->productgroup;
}
public function setProductgroup($productgroup): self
{
$this->productgroup = $productgroup;
return $this;
}
public function __construct()
{
$this->productgroup = new ArrayCollection();
}






@ORM\ManyToMany(targetEntity="Productgroup", inversedBy="fields", cascade={"all"}, fetch="EAGER")but do not get a different result