diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 06f297c..d561134 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Setup PHP uses: shivammathur/setup-php@v2 with: @@ -27,9 +27,9 @@ jobs: run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - name: Get composer cache directory id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" + run: echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} key: dependencies-${{ matrix.php }}-${{ matrix.stability }}-composer-${{ hashFiles('**/composer.lock') }} diff --git a/composer.json b/composer.json index 970f496..89f81bb 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ "require-dev": { "mockery/mockery": "^1.4.4", "orchestra/testbench": "^8.0", - "pestphp/pest": "2.x-dev" + "pestphp/pest": "^2.28" }, "autoload": { "psr-4": { diff --git a/phpunit.xml b/phpunit.xml index 9639a60..023929d 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -8,12 +8,9 @@ processIsolation="false" stopOnFailure="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.0/phpunit.xsd" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd" > - - src/ - @@ -26,4 +23,9 @@ + + + src/ + + diff --git a/src/Services/SlugService.php b/src/Services/SlugService.php index 7e87228..093dae6 100644 --- a/src/Services/SlugService.php +++ b/src/Services/SlugService.php @@ -375,7 +375,9 @@ protected function getExistingSlugs(string $slug, string $attribute, array $conf } // get the list of all matching slugs - $results = $query->select([$attribute, $this->model->getQualifiedKeyName()]) + $results = $query + ->withoutEagerLoads() + ->select([$attribute, $this->model->getQualifiedKeyName()]) ->get() ->toBase(); diff --git a/tests/Models/PostWithEagerRelation.php b/tests/Models/PostWithEagerRelation.php new file mode 100644 index 0000000..959d3dc --- /dev/null +++ b/tests/Models/PostWithEagerRelation.php @@ -0,0 +1,14 @@ + 'Arthur Conan Doyle' + ]); + $post = new PostWithEagerRelation([ + 'title' => 'My First Post' + ]); + $post->author()->associate($author); + $post->save(); + + self::assertEquals('arthur-conan-doyle-my-first-post', $post->slug); + + $post2 = new PostWithEagerRelation([ + 'title' => 'My second post', + ]); + $post2->author()->associate($author); + $post2->save(); + self::assertEquals('arthur-conan-doyle-my-second-post', $post2->slug); + } + +}