Symfony2: Как удалить элемент из доктрины ArrayCollection (отношение "многие ко многим")?
Я использую следующий код для моего отношения "многие ко многим" в symfony2 (doctrine)
сущности:
/**
* @ORMManyToMany(targetEntity="BizTVContainerManagementBundleEntityContainer", inversedBy="videosToSync")
* @ORMJoinTable(name="syncSchema")
*/
private $syncSchema;
public function __construct()
{
$this->syncSchema = new DoctrineCommonCollectionsArrayCollection();
}
public function addSyncSchema(BizTVContainerManagementBundleEntityContainer $syncSchema)
{
$this->syncSchema[] = $syncSchema;
}
:
$entity->addSyncSchema($container);
$em->flush();
теперь, как я могу использовать это, чтобы удалить связь? Нужно ли добавлять метод к моей сущности, такой как removeSyncSchema()? Как бы это выглядело?
1 ответов
Вы ищите ArrayCollection::removeElement
способ здесь.
public function removeSchema(SchemaInterface $schema)
{
$this->schemata->removeElement($schema)
return $this;
}
совет:
можно использовать ArrayCollection::add
добавить элементы в существующую коллекцию. ООП.
в некоторых случаях вы также можете проверить, содержит ли уже элемент перед его добавлением.
public function addSchema(SchemaInterface $schema)
{
if (!$this->schemata->contains($schema)) {
$this->schemata->add($schema);
}
return $this;
}