From 440911f9f7c438a8fc71705a11a025f388fe4018 Mon Sep 17 00:00:00 2001 From: Gummibeer Date: Fri, 5 Apr 2019 15:53:02 +0200 Subject: [PATCH 1/2] drop custom save method in favor of saved event listener --- src/Translatable/Translatable.php | 38 +++++++------------------------ 1 file changed, 8 insertions(+), 30 deletions(-) diff --git a/src/Translatable/Translatable.php b/src/Translatable/Translatable.php index c7e3578..4dbf343 100644 --- a/src/Translatable/Translatable.php +++ b/src/Translatable/Translatable.php @@ -15,6 +15,14 @@ trait Translatable protected $defaultLocale; + public static function bootTranslatable(): void + { + static::saved(function (Model $model) { + /** @var Translatable $model */ + return $model->saveTranslations(); + }); + } + /** * Alias for getTranslation(). * @@ -245,36 +253,6 @@ public function setAttribute($key, $value) return $this; } - /** - * @param array $options - * - * @return bool - */ - public function save(array $options = []) - { - if ($this->exists && ! $this->isDirty()) { - // If $this->exists and not dirty, parent::save() skips saving and returns - // false. So we have to save the translations - if ($this->fireModelEvent('saving') === false) { - return false; - } - - if ($saved = $this->saveTranslations()) { - $this->fireModelEvent('saved', false); - $this->fireModelEvent('updated', false); - } - - return $saved; - } - - // We save the translations only if the instance is saved in the database. - if (parent::save($options)) { - return $this->saveTranslations(); - } - - return false; - } - /** * @param string $locale * From cde60b549351fdf30c747c29ca4f27886dea8de6 Mon Sep 17 00:00:00 2001 From: Gummibeer Date: Fri, 5 Apr 2019 15:54:16 +0200 Subject: [PATCH 2/2] fix php cs --- src/Translatable/Translatable.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Translatable/Translatable.php b/src/Translatable/Translatable.php index 4dbf343..1241bb4 100644 --- a/src/Translatable/Translatable.php +++ b/src/Translatable/Translatable.php @@ -18,7 +18,7 @@ trait Translatable public static function bootTranslatable(): void { static::saved(function (Model $model) { - /** @var Translatable $model */ + /* @var Translatable $model */ return $model->saveTranslations(); }); }