@@ 655-667 (lines=13) @@ | ||
652 | * @param mixed $locales The locales to be deleted (array or single string) |
|
653 | * (e.g., ["en", "de"] would remove these translations). |
|
654 | */ |
|
655 | public function forgetTranslation($locales) |
|
656 | { |
|
657 | if (!is_array($locales)) { |
|
658 | $locales = [$locales]; |
|
659 | } |
|
660 | ||
661 | $modelTranslation = $this->getTranslationModelName(); |
|
662 | $modelTranslation::where($this->getRelationKey(), '=', $this->id)->whereIn($this->getLocaleKey(), $locales)->delete(); |
|
663 | ||
664 | // we need to manually "reload" the collection built from the relationship |
|
665 | // otherwise $this->translations()->get() would NOT be the same as $this->translations |
|
666 | $this->load('translations'); |
|
667 | } |
|
668 | ||
669 | /** |
|
670 | * Deletes the translations for this model, which are not listed in $locales. |
|
@@ 675-687 (lines=13) @@ | ||
672 | * @param mixed $locales The locales to be left untouched (array or single string) |
|
673 | * (e.g., ["en", "de"] would remove all locales but these). |
|
674 | */ |
|
675 | public function syncTranslations($locales) |
|
676 | { |
|
677 | if (!is_array($locales)) { |
|
678 | $locales = [$locales]; |
|
679 | } |
|
680 | ||
681 | $modelTranslation = $this->getTranslationModelName(); |
|
682 | $modelTranslation::where($this->getRelationKey(), '=', $this->id)->whereNotIn($this->getLocaleKey(), $locales)->delete(); |
|
683 | ||
684 | // we need to manually "reload" the collection built from the relationship |
|
685 | // otherwise $this->translations()->get() would NOT be the same as $this->translations |
|
686 | $this->load('translations'); |
|
687 | } |
|
688 | } |
|
689 |