Skip to content

Commit f7b294c

Browse files
authored
Merge pull request #105 from Astrotomic/ft-extend-cascade-unittests
extend the cascade delete unittests
2 parents 0ae89b4 + 44e9d76 commit f7b294c

21 files changed

+82
-47
lines changed

.styleci.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
11
preset: laravel
22

33
risky: true
4-
5-
disabled:
6-
- no_useless_return
7-
- simplified_null_return

.travis.yml

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ dist: bionic
44

55
services:
66
- mysql
7+
- postgresql
8+
9+
addons:
10+
postgresql: "9.4"
711

812
cache:
913
directories:
@@ -14,23 +18,26 @@ php:
1418
- 7.3
1519

1620
env:
17-
- LARAVEL='5.8.*' COMPOSER_FLAGS='--prefer-lowest'
18-
- LARAVEL='5.8.*' COMPOSER_FLAGS='--prefer-stable'
19-
- LARAVEL='^6.0' COMPOSER_FLAGS='--prefer-lowest'
20-
- LARAVEL='^6.0' COMPOSER_FLAGS='--prefer-stable'
21+
- LARAVEL='5.8.*' COMPOSER_FLAGS='--prefer-lowest' DB_CONNECTION='mysql' DB_DATABASE='translatable_test' DB_USERNAME='travis'
22+
- LARAVEL='5.8.*' COMPOSER_FLAGS='--prefer-stable' DB_CONNECTION='mysql' DB_DATABASE='translatable_test' DB_USERNAME='travis'
23+
- LARAVEL='^6.0' COMPOSER_FLAGS='--prefer-lowest' DB_CONNECTION='mysql' DB_DATABASE='translatable_test' DB_USERNAME='travis'
24+
- LARAVEL='^6.0' COMPOSER_FLAGS='--prefer-stable' DB_CONNECTION='mysql' DB_DATABASE='translatable_test' DB_USERNAME='travis'
2125

2226
matrix:
2327
include:
2428
- php: 7.4snapshot
25-
env: LARAVEL='^6.0' COMPOSER_FLAGS='--prefer-lowest'
29+
env: LARAVEL='^6.0' COMPOSER_FLAGS='--prefer-lowest' DB_CONNECTION='mysql' DB_DATABASE='translatable_test' DB_USERNAME='travis'
2630
- php: 7.4snapshot
27-
env: LARAVEL='^6.0' COMPOSER_FLAGS='--prefer-stable'
31+
env: LARAVEL='^6.0' COMPOSER_FLAGS='--prefer-stable' DB_CONNECTION='mysql' DB_DATABASE='translatable_test' DB_USERNAME='travis'
32+
- php: 7.3
33+
env: LARAVEL='^6.0' COMPOSER_FLAGS='--prefer-stable' DB_CONNECTION='pgsql' DB_DATABASE='translatable_test' DB_USERNAME='postgres'
2834
fast_finish: true
2935
allow_failures:
3036
- php: 7.4snapshot
3137

3238
before_install:
33-
- mysql -e 'CREATE DATABASE translatable_test;'
39+
- sh -c "if [ '$DB_CONNECTION' = 'mysql' ]; then mysql -e 'CREATE DATABASE translatable_test;'; fi"
40+
- sh -c "if [ '$DB_CONNECTION' = 'pgsql' ]; then psql -c 'create database translatable_test;' -U postgres; fi"
3441
- composer config discard-changes true
3542
- travis_retry composer self-update
3643
- travis_retry composer require --dev "laravel/framework:${LARAVEL}" --no-interaction --no-update
@@ -39,7 +46,7 @@ install:
3946
- travis_retry composer update ${COMPOSER_FLAGS} --prefer-dist --no-suggest --no-interaction
4047

4148
script:
42-
- DB_CONNECTION=mysql DB_DATABASE=translatable_test DB_USERNAME=travis vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clover
49+
- vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clover
4350

4451
after_script:
4552
- wget https://scrutinizer-ci.com/ocular.phar

docs/changelog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## v11
44

5+
### v11.6.1
6+
7+
* Fix PHP translation cascade deletion - [\#105](https://github.com/Astrotomic/laravel-translatable/pull/105)
8+
59
### v11.6.0
610

711
* Drop PHP 7.1 support

src/Translatable/Contracts/Translatable.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
namespace Astrotomic\Translatable\Contracts;
44

55
use Illuminate\Database\Eloquent\Model;
6-
use Illuminate\Database\Eloquent\Relations\HasOne;
76
use Illuminate\Database\Eloquent\Relations\HasMany;
7+
use Illuminate\Database\Eloquent\Relations\HasOne;
88

99
interface Translatable
1010
{

src/Translatable/Locales.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
namespace Astrotomic\Translatable;
44

55
use ArrayAccess;
6-
use Illuminate\Contracts\Support\Arrayable;
7-
use Illuminate\Contracts\Config\Repository as ConfigContract;
86
use Astrotomic\Translatable\Exception\LocalesNotDefinedException;
7+
use Illuminate\Contracts\Config\Repository as ConfigContract;
8+
use Illuminate\Contracts\Support\Arrayable;
99
use Illuminate\Contracts\Translation\Translator as TranslatorContract;
1010

1111
class Locales implements Arrayable, ArrayAccess

src/Translatable/Traits/Relationship.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
namespace Astrotomic\Translatable\Traits;
44

5-
use Illuminate\Database\Eloquent\Relations\HasOne;
65
use Illuminate\Database\Eloquent\Relations\HasMany;
6+
use Illuminate\Database\Eloquent\Relations\HasOne;
77

88
/**
99
* @property-read string $translationModel

src/Translatable/Traits/Scopes.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
namespace Astrotomic\Translatable\Traits;
44

55
use Illuminate\Database\Eloquent\Builder;
6-
use Illuminate\Database\Query\JoinClause;
76
use Illuminate\Database\Eloquent\Relations\Relation;
87
use Illuminate\Database\Query\Builder as QueryBuilder;
8+
use Illuminate\Database\Query\JoinClause;
99

1010
trait Scopes
1111
{

src/Translatable/Translatable.php

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
namespace Astrotomic\Translatable;
44

5-
use Illuminate\Support\Str;
6-
use Illuminate\Database\Eloquent\Model;
5+
use Astrotomic\Translatable\Traits\Relationship;
76
use Astrotomic\Translatable\Traits\Scopes;
87
use Illuminate\Database\Eloquent\Collection;
9-
use Astrotomic\Translatable\Traits\Relationship;
8+
use Illuminate\Database\Eloquent\Model;
9+
use Illuminate\Support\Str;
1010

1111
/**
1212
* @property-read null|Model $translation
@@ -35,7 +35,8 @@ public static function bootTranslatable(): void
3535
return $model->saveTranslations();
3636
});
3737

38-
static::deleted(function (Model $model) {
38+
static::deleting(function (Model $model) {
39+
/* @var Translatable $model */
3940
if (self::$deleteTranslationsCascade === true) {
4041
return $model->deleteTranslations();
4142
}
@@ -103,9 +104,7 @@ public function deleteTranslations($locales = null): void
103104
$translations = $this->translations()->whereIn($this->getLocaleKey(), $locales)->get();
104105
}
105106

106-
foreach ($translations as $translation) {
107-
$translation->delete();
108-
}
107+
$translations->each->delete();
109108

110109
// we need to manually "reload" the collection built from the relationship
111110
// otherwise $this->translations()->get() would NOT be the same as $this->translations

src/Translatable/Validation/RuleFactory.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
namespace Astrotomic\Translatable\Validation;
44

5-
use InvalidArgumentException;
65
use Astrotomic\Translatable\Locales;
76
use Illuminate\Contracts\Config\Repository;
7+
use InvalidArgumentException;
88

99
class RuleFactory
1010
{

tests/Eloquent/Country.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
namespace Astrotomic\Translatable\Tests\Eloquent;
44

5+
use Astrotomic\Translatable\Contracts\Translatable as TranslatableContract;
56
use Astrotomic\Translatable\Translatable;
67
use Illuminate\Database\Eloquent\Model as Eloquent;
7-
use Astrotomic\Translatable\Contracts\Translatable as TranslatableContract;
88

99
class Country extends Eloquent implements TranslatableContract
1010
{

0 commit comments

Comments
 (0)