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