[英]How can I get access to ArrayCollection data inside my Array (Symfony 4)?
fields table
:
productgroup table
:
在我的控制器中,我像这样加载我的fields_array
:
$fields_array = $this->getDoctrine()->getRepository(class::fields)->findAll();
如果没有连接字段和产品组,则fields_array
如下所示:
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 ▶}
}
]
如您所见, ArrayCollecton
不包含任何元素。
所以现在我将cat
与产品组Animals
。 所以我的表fields_productgroup
看起来像这样:
现在,如您所见,我的cat
ArrayCollection
包含元素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 ▶}
}
]
现在,我还将horse
与产品组Animals
。 所以我的表fields_productgroup
看起来像这样:
我fields_array
为horse
表明,有在一个元素ArrayCollection
,但它不包含信息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: 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 ▶}
}
]
我的领域实体:
/**
* @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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.