-
Notifications
You must be signed in to change notification settings - Fork 232
-
Describe the bug
When using this package, together with other packages, that also use the newEloquentBuilder, it will fail, since two cannot use the same method two redo the eloquentBuilder, I suppose.
use GeneaLabs\LaravelModelCaching\Traits\Cachable; use Kalnoy\Nestedset\NodeTrait; class City extends Model { use Cachable, NodeTrait; }
Eloquent Query
Please provide the complete eloquent query that caused the bug, for example:
Using the NodeTrait from Kalnoy, as mentioned above.
Route::get('tree', function() { App\Models\City::fixTree(); });
Stack Trace
The full stack trace from your log file.
[2020年09月02日 07:35:18] local.ERROR: Trait method newEloquentBuilder has not been applied, because there are collisions with other trait methods on App\Models\City {"exception":"[object] (Symfony\\Component\\ErrorHandler\\Error\\FatalError(code: 0): Trait method newEloquentBuilder has not been applied, because there are collisions with other trait methods on App\\Models\\City at /home/vagrant/finddet/app/Models/City.php:9)
[stacktrace]
#0 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(143): Symfony\\Component\\ErrorHandler\\Error\\FatalError->__construct()
#1 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(130): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->fatalErrorFromPhpError()
#2 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(0): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleShutdown()
#3 /home/vagrant/finddet/vendor/composer/ClassLoader.php(444): ()
#4 /home/vagrant/finddet/vendor/composer/ClassLoader.php(322): Composer\\Autoload\\includeFile()
#5 /home/vagrant/finddet/routes/web.php(111): Composer\\Autoload\\ClassLoader->loadClass()
#6 /home/vagrant/finddet/routes/web.php(111): spl_autoload_call()
#7 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Routing/Route.php(225): Illuminate\\Routing\\RouteFileRegistrar->{closure:/home/vagrant/finddet/routes/web.php:110-112}()
#8 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Routing/Route.php(199): Illuminate\\Routing\\Route->runCallable()
#9 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Routing/Router.php(685): Illuminate\\Routing\\Route->run()
#10 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Routing/Router.php:683-687}()
#11 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:126-132}()
#12 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#13 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(77): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#14 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\VerifyCsrfToken->handle()
#15 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#16 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#17 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(116): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#18 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(62): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#19 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle()
#20 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#21 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#22 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#23 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\EncryptCookies->handle()
#24 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#25 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Routing/Router.php(687): Illuminate\\Routing\\Pipeline->then()
#26 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\\Routing\\Router->runRouteWithinStack()
#27 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Routing/Router.php(628): Illuminate\\Routing\\Router->runRoute()
#28 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Routing/Router.php(617): Illuminate\\Routing\\Router->dispatchToRoute()
#29 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Routing\\Router->dispatch()
#30 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): App\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:162-166}()
#31 /home/vagrant/finddet/vendor/beyondcode/laravel-query-detector/src/QueryDetectorMiddleware.php(33): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:126-132}()
#32 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BeyondCode\\QueryDetector\\QueryDetectorMiddleware->handle()
#33 /home/vagrant/finddet/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(65): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#34 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle()
#35 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#36 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#37 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#38 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\TrimStrings->handle()
#39 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#40 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#41 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#42 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\CheckForMaintenanceMode->handle()
#43 /home/vagrant/finddet/vendor/fruitcake/laravel-cors/src/HandleCors.php(37): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#44 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle()
#45 /home/vagrant/finddet/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#46 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\TrustProxies->handle()
#47 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Routing\\Pipeline->Illuminate\\Pipeline\\{closure:/home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:143-174}()
#48 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(140): Illuminate\\Routing\\Pipeline->then()
#49 /home/vagrant/finddet/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(109): App\\Http\\Kernel->sendRequestThroughRouter()
#50 /home/vagrant/finddet/public/index.php(55): App\\Http\\Kernel->handle()
#51 /home/vagrant/finddet/public/index.php(0): {main}()
#52 {main}
"}
Environment
- PHP: 7.4.6
- OS: 9.11.3-1ubuntu1.13-Ubuntu - Vagrant Homebox
- Laravel: 7.26.1
- Model Caching: 0.10.1
Additional context
This seems to be a general issue, when using these packages, that uses the same general commands.
Presented in this issue: #137
lazychaser/laravel-nestedset#360
Beta Was this translation helpful? Give feedback.
All reactions
Replies: 12 comments
-
Hi @LiamAird, thank you for submitting a new issue with all the relevant details. I will see if there is something that can be done to help with this, but unfortunately so far it has been very difficult for multiple packages that change the behavior of newEloquentBuilder
to co-exist.
Beta Was this translation helpful? Give feedback.
All reactions
-
It seems that the general written work-around is to create a new trait, that implements this newEloquentBuilder trait - so that it is namespaced differently and therefore will not collide.
In my opinion this is not something that the general user should do, to make packages work - so if you can find a way to make it work, I'd be forever grateful! :)
If not, we will have to find a way to make a trait ourselves and have it written up in the guides as a "work-around" fix to use this package with others, that utilizes the same methods.
Beta Was this translation helpful? Give feedback.
All reactions
-
@LiamAird I may have a solution for this, working on it now.
Beta Was this translation helpful? Give feedback.
All reactions
-
@LiamAird Could you give release 0.10.2 a try and let me know if that fixes the issue? Please see the readme section towards the top regarding conflicting packages as how to implement it. Thanks!
Beta Was this translation helpful? Give feedback.
All reactions
-
@mikebronner Any progress on this, since the latest change did not work as expected.
Also seems like the latest conversation got deleted.
Beta Was this translation helpful? Give feedback.
All reactions
-
@LiamAird I am still working toward a full solution. I noticed after publishing 0.10.2 that it wasn't working as expected, and will hopefully have a solution in the near future.
Beta Was this translation helpful? Give feedback.
All reactions
-
Any information on this? It's also blocking me to upgrade for some time.
Beta Was this translation helpful? Give feedback.
All reactions
-
@C10ne Can you install 0.10.1 in the meantime?
Beta Was this translation helpful? Give feedback.
All reactions
-
Is there any update on this? I am still having the collision issue on version 0.11.1
Beta Was this translation helpful? Give feedback.
All reactions
-
@mefenlon Hi, sorry, I have not been able to get to working on a solution for this yet due to a very chaotic past several months on my end.
Beta Was this translation helpful? Give feedback.
All reactions
-
Beta Was this translation helpful? Give feedback.
All reactions
-
Hey, any update on this? We would also like to use both traits parallel :)
Beta Was this translation helpful? Give feedback.