Closed
Description
Describe the bug
After upgrading to laravel v10 , getting this error
checkCooldownAndFlushAfterPersisting(): Argument #2 ($relationship) must be of type string, array given, called in /var/www/html/vendor/genealabs/laravel-model-caching/src/Traits/ModelCaching.php on line 83
Eloquent Query
if ($this->variants->channels()->find($this->channel->getId())) {
$this->variants->channels()->syncWithoutDetaching([
$this->channel->getId() => [
'warehouses_id' => $this->warehouse->getId(),
'price' => $this->variantChannel->price,
'discounted_price' => $this->variantChannel->discounted_price,
'is_published' => $this->variantChannel->is_published,
]
]);
} else {
$this->variants->channels()->attach([
$this->channel->getId() => [
'warehouses_id' => $this->warehouse->getId(),
'price' => $this->variantChannel->price,
'discounted_price' => $this->variantChannel->discounted_price,
'is_published' => $this->variantChannel->is_published,
]
]);
}
Stack Trace
TypeError: Kanvas\Inventory\Models\BaseModel::checkCooldownAndFlushAfterPersisting(): Argument #2 ($relationship) must be of type string, array given, called in /var/www/html/vendor/genealabs/laravel-model-caching/src/Traits/ModelCaching.php on line 83 and defined in /var/www/html/vendor/genealabs/laravel-model-caching/src/Traits/Caching.php:264
Stack trace:
#0 /var/www/html/vendor/genealabs/laravel-model-caching/src/Traits/ModelCaching.php(83): Kanvas\Inventory\Models\BaseModel->checkCooldownAndFlushAfterPersisting(Object(Kanvas\Inventory\Variants\Models\Variants), Array)
#1 /var/www/html/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(421): Kanvas\Inventory\Models\BaseModel::GeneaLabs\LaravelModelCaching\Traits\{closure}(Object(Kanvas\Inventory\Variants\Models\Variants), 'channels', Array, Array, Object(Kanvas\Inventory\Variants\Models\Variants))
#2 /var/www/html/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(249): Illuminate\Events\Dispatcher->Illuminate\Events\{closure}('eloquent.pivotA...', Array)
#3 /var/www/html/vendor/genealabs/laravel-pivot-events/src/Traits/ExtendFireModelEventTrait.php(48): Illuminate\Events\Dispatcher->dispatch('eloquent.pivotA...', Array)
#4 /var/www/html/vendor/genealabs/laravel-pivot-events/src/Traits/FiresPivotEventsTrait.php(45): Kanvas\Inventory\Models\BaseModel->fireModelEvent('pivotAttached', false, 'channels', Array, Array)
#5 /var/www/html/src/Inventory/Variants/Actions/AddVariantToChannel.php(34): GeneaLabs\LaravelModelCaching\CachedBelongsToMany->attach(Array)
#6 /var/www/html/app/GraphQL/Inventory/Mutations/Variants/Variants.php(150): Kanvas\Inventory\Variants\Actions\AddVariantToChannel->execute()
#7 /var/www/html/vendor/nuwave/lighthouse/src/Schema/Directives/FieldDirective.php(50): App\GraphQL\Inventory\Mutations\Variants\Variants->addToChannel(NULL, Array, Object(Nuwave\Lighthouse\Schema\Context), Object(Nuwave\Lighthouse\Execution\ResolveInfo))
#8 /var/www/html/vendor/nuwave/lighthouse/src/Auth/GuardDirective.php(64): Nuwave\Lighthouse\Schema\Directives\FieldDirective->Nuwave\Lighthouse\Schema\Directives\{closure}(NULL, Array, Object(Nuwave\Lighthouse\Schema\Context), Object(Nuwave\Lighthouse\Execution\ResolveInfo))
#9 /var/www/html/vendor/nuwave/lighthouse/src/Schema/Directives/DropArgsDirective.php(33): Nuwave\Lighthouse\Auth\GuardDirective->Nuwave\Lighthouse\Auth\{closure}(NULL, Array, Object(Nuwave\Lighthouse\Schema\Context), Object(Nuwave\Lighthouse\Execution\ResolveInfo))
#10 /var/www/html/vendor/nuwave/lighthouse/src/Schema/Directives/RenameArgsDirective.php(33): Nuwave\Lighthouse\Schema\Directives\DropArgsDirective->Nuwave\Lighthouse\Schema\Directives\{closure}(NULL, Array, Object(Nuwave\Lighthouse\Schema\Context), Object(Nuwave\Lighthouse\Execution\ResolveInfo))
#11 /var/www/html/vendor/nuwave/lighthouse/src/Schema/Directives/SpreadDirective.php(32): Nuwave\Lighthouse\Schema\Directives\RenameArgsDirective->Nuwave\Lighthouse\Schema\Directives\{closure}(NULL, Array, Object(Nuwave\Lighthouse\Schema\Context), Object(Nuwave\Lighthouse\Execution\ResolveInfo))
#12 /var/www/html/vendor/nuwave/lighthouse/src/Schema/Directives/ArgTraversalDirective.php(25): Nuwave\Lighthouse\Schema\Directives\SpreadDirective->Nuwave\Lighthouse\Schema\Directives\{closure}(NULL, Array, Object(Nuwave\Lighthouse\Schema\Context), Object(Nuwave\Lighthouse\Execution\ResolveInfo))
#13 /var/www/html/vendor/nuwave/lighthouse/src/Validation/ValidateDirective.php(50): Nuwave\Lighthouse\Schema\Directives\ArgTraversalDirective->Nuwave\Lighthouse\Schema\Directives\{closure}(NULL, Array, Object(Nuwave\Lighthouse\Schema\Context), Object(Nuwave\Lighthouse\Execution\ResolveInfo))
#14 /var/www/html/vendor/nuwave/lighthouse/src/Schema/Directives/ArgTraversalDirective.php(25): Nuwave\Lighthouse\Validation\ValidateDirective->Nuwave\Lighthouse\Validation\{closure}(NULL, Array, Object(Nuwave\Lighthouse\Schema\Context), Object(Nuwave\Lighthouse\Execution\ResolveInfo))
#15 /var/www/html/vendor/nuwave/lighthouse/src/Schema/Directives/ConvertEmptyStringsToNullDirective.php(46): Nuwave\Lighthouse\Schema\Directives\ArgTraversalDirective->Nuwave\Lighthouse\Schema\Directives\{closure}(NULL, Array, Object(Nuwave\Lighthouse\Schema\Context), Object(Nuwave\Lighthouse\Execution\ResolveInfo))
#16 /var/www/html/vendor/nuwave/lighthouse/src/Schema/Directives/TrimDirective.php(52): Nuwave\Lighthouse\Schema\Directives\ConvertEmptyStringsToNullDirective->Nuwave\Lighthouse\Schema\Directives\{closure}(NULL, Array, Object(Nuwave\Lighthouse\Schema\Context), Object(Nuwave\Lighthouse\Execution\ResolveInfo))
#17 /var/www/html/vendor/nuwave/lighthouse/src/Schema/Factories/FieldFactory.php(127): Nuwave\Lighthouse\Schema\Directives\TrimDirective->Nuwave\Lighthouse\Schema\Directives\{closure}(NULL, Array, Object(Nuwave\Lighthouse\Schema\Context), Object(Nuwave\Lighthouse\Execution\ResolveInfo))
#18 /var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php(623): Nuwave\Lighthouse\Schema\Factories\FieldFactory->Nuwave\Lighthouse\Schema\Factories\{closure}(NULL, Array, Object(Nuwave\Lighthouse\Schema\Context), Object(GraphQL\Type\Definition\ResolveInfo))
#19 /var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php(549): GraphQL\Executor\ReferenceExecutor->resolveFieldValueOrError(Object(GraphQL\Type\Definition\FieldDefinition), Object(GraphQL\Language\AST\FieldNode), Object(Closure), NULL, Object(GraphQL\Type\Definition\ResolveInfo))
#20 /var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php(474): GraphQL\Executor\ReferenceExecutor->resolveField(Object(GraphQL\Type\Definition\ObjectType), NULL, Object(ArrayObject), Array)
#21 /var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php(857): GraphQL\Executor\ReferenceExecutor->GraphQL\Executor\{closure}(Array, 'addVariantToCha...')
#22 [internal function]: GraphQL\Executor\ReferenceExecutor->GraphQL\Executor\{closure}(Array, 'addVariantToCha...')
#23 /var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php(847): array_reduce(Array, Object(Closure), Array)
#24 /var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php(468): GraphQL\Executor\ReferenceExecutor->promiseReduce(Array, Object(Closure), Array)
#25 /var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php(263): GraphQL\Executor\ReferenceExecutor->executeFieldsSerially(Object(GraphQL\Type\Definition\ObjectType), NULL, Array, Object(ArrayObject))
#26 /var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php(215): GraphQL\Executor\ReferenceExecutor->executeOperation(Object(GraphQL\Language\AST\OperationDefinitionNode), NULL)
#27 /var/www/html/vendor/webonyx/graphql-php/src/Executor/Executor.php(156): GraphQL\Executor\ReferenceExecutor->doExecute()
#28 /var/www/html/vendor/webonyx/graphql-php/src/GraphQL.php(161): GraphQL\Executor\Executor::promiseToExecute(Object(GraphQL\Executor\Promise\Adapter\SyncPromiseAdapter), Object(GraphQL\Type\Schema), Object(GraphQL\Language\AST\DocumentNode), NULL, Object(Nuwave\Lighthouse\Schema\Context), Array, NULL, NULL)
#29 /var/www/html/vendor/webonyx/graphql-php/src/GraphQL.php(93): GraphQL\GraphQL::promiseToExecute(Object(GraphQL\Executor\Promise\Adapter\SyncPromiseAdapter), Object(GraphQL\Type\Schema), Object(GraphQL\Language\AST\DocumentNode), NULL, Object(Nuwave\Lighthouse\Schema\Context), Array, NULL, NULL, Array)
#30 /var/www/html/vendor/nuwave/lighthouse/src/GraphQL.php(262): GraphQL\GraphQL::executeQuery(Object(GraphQL\Type\Schema), Object(GraphQL\Language\AST\DocumentNode), NULL, Object(Nuwave\Lighthouse\Schema\Context), Array, NULL, NULL, Array)
#31 /var/www/html/vendor/nuwave/lighthouse/src/GraphQL.php(204): Nuwave\Lighthouse\GraphQL->executeParsedQuery(Object(GraphQL\Language\AST\DocumentNode), Object(Nuwave\Lighthouse\Schema\Context), Array, NULL, NULL)
#32 /var/www/html/vendor/nuwave/lighthouse/src/GraphQL.php(158): Nuwave\Lighthouse\GraphQL->parseAndExecuteQuery('\n mutati...', Object(Nuwave\Lighthouse\Schema\Context), Array, NULL, NULL)
#33 /var/www/html/vendor/nuwave/lighthouse/src/GraphQL.php(122): Nuwave\Lighthouse\GraphQL->executeOperation(Object(GraphQL\Server\OperationParams), Object(Nuwave\Lighthouse\Schema\Context))
#34 /var/www/html/vendor/nuwave/lighthouse/src/Support/Utils.php(114): Nuwave\Lighthouse\GraphQL->Nuwave\Lighthouse\{closure}(Object(GraphQL\Server\OperationParams))
#35 /var/www/html/vendor/nuwave/lighthouse/src/GraphQL.php(117): Nuwave\Lighthouse\Support\Utils::mapEach(Object(Closure), Object(GraphQL\Server\OperationParams))
#36 /var/www/html/vendor/nuwave/lighthouse/src/Support/Http/Controllers/GraphQLController.php(32): Nuwave\Lighthouse\GraphQL->executeOperationOrOperations(Object(GraphQL\Server\OperationParams), Object(Nuwave\Lighthouse\Schema\Context))
#37 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): Nuwave\Lighthouse\Support\Http\Controllers\GraphQLController->__invoke(Object(Illuminate\Http\Request), Object(Nuwave\Lighthouse\GraphQL), Object(Illuminate\Events\Dispatcher), Object(Laragraph\Utils\RequestParser), Object(Nuwave\Lighthouse\Execution\SingleResponse), Object(Nuwave\Lighthouse\Execution\ContextFactory))
#38 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Nuwave\Lighthouse\Support\Http\Controllers\GraphQLController), '__invoke')
#39 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route->runController()
#40 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(798): Illuminate\Routing\Route->run()
#41 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#42 /var/www/html/vendor/nuwave/lighthouse/src/Support/Http/Middleware/AcceptJson.php(26): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#43 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Nuwave\Lighthouse\Support\Http\Middleware\AcceptJson->handle(Object(Illuminate\Http\Request), Object(Closure))
#44 /var/www/html/vendor/nuwave/lighthouse/src/Support/Http/Middleware/AttemptAuthentication.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#45 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Nuwave\Lighthouse\Support\Http\Middleware\AttemptAuthentication->handle(Object(Illuminate\Http\Request), Object(Closure))
#46 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#47 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(797): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#48 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(776): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#49 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(740): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#50 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(729): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#51 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#52 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#53 /var/www/html/app/Http/Middleware/RolesMiddleware.php(30): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#54 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\Http\Middleware\RolesMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#55 /var/www/html/app/Http/Middleware/JsonResponse.php(16): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#56 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\Http\Middleware\JsonResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#57 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#58 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#59 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle(Object(Illuminate\Http\Request), Object(Closure))
#60 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#61 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#62 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\TrimStrings->handle(Object(Illuminate\Http\Request), Object(Closure))
#63 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#64 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#65 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#66 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle(Object(Illuminate\Http\Request), Object(Closure))
#67 /var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#68 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Http\Middleware\HandleCors->handle(Object(Illuminate\Http\Request), Object(Closure))
#69 /var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#70 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Http\Middleware\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#71 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#72 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#73 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#74 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php(563): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#75 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php(529): Illuminate\Foundation\Testing\TestCase->call('POST', 'http://localhos...', Array, Array, Array, Array, '{"query":"\\n ...')
#76 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php(367): Illuminate\Foundation\Testing\TestCase->json('POST', 'http://localhos...', Array, Array, 0)
#77 /var/www/html/vendor/nuwave/lighthouse/src/Testing/MakesGraphQLRequests.php(78): Illuminate\Foundation\Testing\TestCase->postJson('http://localhos...', Array, Array)
#78 /var/www/html/vendor/nuwave/lighthouse/src/Testing/MakesGraphQLRequests.php(62): Tests\TestCase->postGraphQL(Array, Array)
#79 /var/www/html/tests/GraphQL/Inventory/VariantsChannelsTest.php(123): Tests\TestCase->graphQL('\n mutati...', Array)
#80 /var/www/html/vendor/phpunit/phpunit/src/Framework/TestCase.php(1040): Tests\GraphQL\Inventory\VariantsChannelsTest->testVariantToChannel()
#81 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php(173): PHPUnit\Framework\TestCase->runTest()
#82 /var/www/html/vendor/phpunit/phpunit/src/Framework/TestCase.php(635): Illuminate\Foundation\Testing\TestCase->runTest()
#83 /var/www/html/vendor/phpunit/phpunit/src/Framework/TestRunner.php(101): PHPUnit\Framework\TestCase->runBare()
#84 /var/www/html/vendor/phpunit/phpunit/src/Framework/TestCase.php(462): PHPUnit\Framework\TestRunner->run(Object(Tests\GraphQL\Inventory\VariantsChannelsTest))
#85 /var/www/html/vendor/phpunit/phpunit/src/Framework/TestSuite.php(351): PHPUnit\Framework\TestCase->run()
#86 /var/www/html/vendor/phpunit/phpunit/src/TextUI/TestRunner.php(63): PHPUnit\Framework\TestSuite->run()
#87 /var/www/html/vendor/phpunit/phpunit/src/TextUI/Application.php(143): PHPUnit\TextUI\TestRunner->run(Object(PHPUnit\TextUI\Configuration\Configuration), Object(PHPUnit\Runner\ResultCache\DefaultResultCache), Object(PHPUnit\Framework\TestSuite))
#88 /var/www/html/vendor/phpunit/phpunit/phpunit(99): PHPUnit\TextUI\Application->run(Array)
#89 {main}
Environment
- PHP: 8.2
- OS: Ubuntu 18.04
- Laravel: v10
- Model Caching: 13.3