/** * Remove language of this object * through the lyric_language cross reference table. * * @param ChildLanguage $language * @return ChildLyric The current object (for fluent API support) */ public function removeLanguage(ChildLanguage $language) { if ($this->getLanguages()->contains($language)) { $lyricLanguage = new LyricLanguage(); $lyricLanguage->setLanguage($language); if ($language->isLyricsLoaded()) { //remove the back reference if available $language->getLyrics()->removeObject($this); } $lyricLanguage->setLyric($this); $this->removeLyricLanguage(clone $lyricLanguage); $lyricLanguage->clear(); $this->collLanguages->remove($this->collLanguages->search($language)); if (null === $this->languagesScheduledForDeletion) { $this->languagesScheduledForDeletion = clone $this->collLanguages; $this->languagesScheduledForDeletion->clear(); } $this->languagesScheduledForDeletion->push($language); } return $this; }