Closed
Description
Describe the bug
When laravel model caching enabled, I can't use eloquent taggable. Looks like there is a conflict with "tags" word.
I'm trying to update my post with new tags but there is an error:
Call to undefined method Cviebrock\EloquentTaggable\Models\Tag::flushCache()
But taggable package doesn't have flushCache function.
{
"message": "Call to undefined method Cviebrock\\EloquentTaggable\\Models\\Tag::flushCache()",
"exception": "BadMethodCallException",
"file": "E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Traits\\ForwardsCalls.php",
"line": 50,
"trace": [
{
"file": "E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Traits\\ForwardsCalls.php",
"line": 36,
"function": "throwBadMethodCallException",
"class": "Illuminate\\Database\\Eloquent\\Model",
"type": "::"
},
{
"file": "E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Model.php",
"line": 1614,
"function": "forwardCallTo",
"class": "Illuminate\\Database\\Eloquent\\Model",
"type": "->"
},
{
"file": "E:\\laragon\\www\\wpsc\\vendor\\genealabs\\laravel-model-caching\\src\\Traits\\Caching.php",
"line": 189,
"function": "__call",
"class": "Illuminate\\Database\\Eloquent\\Model",
"type": "->"
},
{
"file": "E:\\laragon\\www\\wpsc\\vendor\\genealabs\\laravel-model-caching\\src\\Traits\\ModelCaching.php",
"line": 77,
"function": "checkCooldownAndFlushAfterPersisting",
"class": "App\\Post",
"type": "->"
}
Eloquent Query
`$postTags = explode(",", $request->postTags);
$post->retag($postTags);`
Stack Trace
> [2019-05-25 03:29:51] local.ERROR: Call to undefined method Cviebrock\EloquentTaggable\Models\Tag::flushCache() {"userId":46,"exception":"[object] (BadMethodCallException(code: 0): Call to undefined method Cviebrock\\EloquentTaggable\\Models\\Tag::flushCache() at E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Traits\\ForwardsCalls.php:50)
> [stacktrace]
> #0 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Traits\\ForwardsCalls.php(36): Illuminate\\Database\\Eloquent\\Model::throwBadMethodCallException('flushCache')
> #1 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Model.php(1614): Illuminate\\Database\\Eloquent\\Model->forwardCallTo(Object(Illuminate\\Database\\Eloquent\\Builder), 'flushCache', Array)
> #2 E:\\laragon\\www\\wpsc\\vendor\\genealabs\\laravel-model-caching\\src\\Traits\\Caching.php(189): Illuminate\\Database\\Eloquent\\Model->__call('flushCache', Array)
> #3 E:\\laragon\\www\\wpsc\\vendor\\genealabs\\laravel-model-caching\\src\\Traits\\ModelCaching.php(77): App\\Post->checkCooldownAndFlushAfterPersisting(Object(App\\Post), 'tags')
> #4 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Events\\Dispatcher.php(347): App\\Post::GeneaLabs\\LaravelModelCaching\\Traits\\{closure}(Object(App\\Post), Object(App\\Post), 'tags', Array, Array)
> #5 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Events\\Dispatcher.php(196): Illuminate\\Events\\Dispatcher->Illuminate\\Events\\{closure}('eloquent.pivotA...', Array)
> #6 E:\\laragon\\www\\wpsc\\vendor\\genealabs\\laravel-pivot-events\\src\\Traits\\ExtendFireModelEventTrait.php(46): Illuminate\\Events\\Dispatcher->dispatch('eloquent.pivotA...', Array)
> #7 E:\\laragon\\www\\wpsc\\vendor\\genealabs\\laravel-pivot-events\\src\\Traits\\FiresPivotEventsTrait.php(21): App\\Post->fireModelEvent('pivotAttached', false, 'tags', Array, Array)
> #8 E:\\laragon\\www\\wpsc\\vendor\\cviebrock\\eloquent-taggable\\src\\Taggable.php(125): GeneaLabs\\LaravelPivotEvents\\Relations\\MorphToManyCustom->attach(1)
> #9 E:\\laragon\\www\\wpsc\\vendor\\cviebrock\\eloquent-taggable\\src\\Taggable.php(60): App\\Post->addOneTag('WordPress')
> #10 E:\\laragon\\www\\wpsc\\vendor\\cviebrock\\eloquent-taggable\\src\\Taggable.php(98): App\\Post->tag(Array)
> #11 E:\\laragon\\www\\wpsc\\app\\Http\\Controllers\\PostAdminController.php(174): App\\Post->retag(Array)
> #12 [internal function]: App\\Http\\Controllers\\PostAdminController->update(Object(Illuminate\\Http\\Request), '40')
> #13 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Controller.php(54): call_user_func_array(Array, Array)
> #14 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('update', Array)
> #15 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(219): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\PostAdminController), 'update')
> #16 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(176): Illuminate\\Routing\\Route->runController()
> #17 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(680): Illuminate\\Routing\\Route->run()
> #18 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(30): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #19 E:\\laragon\\www\\wpsc\\vendor\\zizaco\\entrust\\src\\Entrust\\Middleware\\EntrustRole.php(42): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #20 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Zizaco\\Entrust\\Middleware\\EntrustRole->handle(Object(Illuminate\\Http\\Request), Object(Closure), 'admin|site-edit...')
> #21 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #22 E:\\laragon\\www\\wpsc\\vendor\\zizaco\\entrust\\src\\Entrust\\Middleware\\EntrustRole.php(42): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #23 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Zizaco\\Entrust\\Middleware\\EntrustRole->handle(Object(Illuminate\\Http\\Request), Object(Closure), 'admin|site-edit...')
> #24 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #25 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\SubstituteBindings.php(41): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #26 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
> #27 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #28 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken.php(75): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #29 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
> #30 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #31 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\View\\Middleware\\ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #32 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
> #33 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #34 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Session\\Middleware\\StartSession.php(56): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #35 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
> #36 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #37 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #38 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
> #39 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #40 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Cookie\\Middleware\\EncryptCookies.php(66): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #41 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
> #42 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #43 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #44 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(682): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
> #45 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(657): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
> #46 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(623): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
> #47 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(612): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
> #48 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(176): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
> #49 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(30): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
> #50 E:\\laragon\\www\\wpsc\\vendor\\barryvdh\\laravel-debugbar\\src\\Middleware\\InjectDebugbar.php(65): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #51 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Illuminate\\Http\\Request), Object(Closure))
> #52 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #53 E:\\laragon\\www\\wpsc\\vendor\\fideloper\\proxy\\src\\TrustProxies.php(57): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #54 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
> #55 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #56 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #57 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
> #58 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #59 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #60 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
> #61 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #62 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php(27): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #63 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
> #64 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #65 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode.php(62): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #66 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
> #67 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
> #68 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
> #69 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
> #70 E:\\laragon\\www\\wpsc\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
> #71 E:\\laragon\\www\\wpsc\\public\\index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
> #72 {main}
> "}
Environment
- PHP: [7.3.5]
- OS: [Windows 10]
- Laravel: [5.8.18]
- Model Caching: [0.5.2]
I tried to remove model caching and there was no problem. Do you have any suggestion for this?