Undefined property: Builder::$concats
Winter CMS Build
1.2
PHP Version
8.3
Database engine
MySQL/MariaDB
Plugins installed
No response
Issue description
On file "vendor/winter/storm/src/Database/Query/Grammars/Concerns/SelectConcatenations.php" there is a bug:
Undefined property: Builder::$concats
on line 24
Steps to replicate
LOG.error: ErrorException: Undefined property: Awobaz\Compoships\Database\Query\Builder::$concats in /var/www/html/vendor/winter/storm/src/Database/Query/Grammars/Concerns/SelectConcatenations.php:24
Stack trace:
#0 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(272): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError()
#1 /var/www/html/vendor/winter/storm/src/Database/Query/Grammars/Concerns/SelectConcatenations.php(24): Illuminate\Foundation\Bootstrap\HandleExceptions->Illuminate\Foundation\Bootstrap\{closure}()
#2 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(101): Winter\Storm\Database\Query\Grammars\MySqlGrammar->compileColumns()
#3 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(75): Illuminate\Database\Query\Grammars\Grammar->compileComponents()
#4 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(535): Illuminate\Database\Query\Grammars\Grammar->compileSelect()
#5 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(222): Illuminate\Database\Query\Grammars\Grammar->whereExists()
#6 [internal function]: Illuminate\Database\Query\Grammars\Grammar->Illuminate\Database\Query\Grammars\{closure}()
#7 /var/www/html/vendor/laravel/framework/src/Illuminate/Collections/Arr.php(560): array_map()
#8 /var/www/html/vendor/laravel/framework/src/Illuminate/Collections/Collection.php(768): Illuminate\Support\Arr::map()
#9 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(221): Illuminate\Support\Collection->map()
#10 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(206): Illuminate\Database\Query\Grammars\Grammar->compileWheresToArray()
#11 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(101): Illuminate\Database\Query\Grammars\Grammar->compileWheres()
#12 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(75): Illuminate\Database\Query\Grammars\Grammar->compileComponents()
#13 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(535): Illuminate\Database\Query\Grammars\Grammar->compileSelect()
#14 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(222): Illuminate\Database\Query\Grammars\Grammar->whereExists()
#15 [internal function]: Illuminate\Database\Query\Grammars\Grammar->Illuminate\Database\Query\Grammars\{closure}()
#16 /var/www/html/vendor/laravel/framework/src/Illuminate/Collections/Arr.php(560): array_map()
#17 /var/www/html/vendor/laravel/framework/src/Illuminate/Collections/Collection.php(768): Illuminate\Support\Arr::map()
#18 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(221): Illuminate\Support\Collection->map()
#19 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(206): Illuminate\Database\Query\Grammars\Grammar->compileWheresToArray()
#20 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(101): Illuminate\Database\Query\Grammars\Grammar->compileWheres()
#21 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(75): Illuminate\Database\Query\Grammars\Grammar->compileComponents()
#22 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(535): Illuminate\Database\Query\Grammars\Grammar->compileSelect()
#23 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(222): Illuminate\Database\Query\Grammars\Grammar->whereExists()
#24 [internal function]: Illuminate\Database\Query\Grammars\Grammar->Illuminate\Database\Query\Grammars\{closure}()
#25 /var/www/html/vendor/laravel/framework/src/Illuminate/Collections/Arr.php(560): array_map()
#26 /var/www/html/vendor/laravel/framework/src/Illuminate/Collections/Collection.php(768): Illuminate\Support\Arr::map()
#27 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(221): Illuminate\Support\Collection->map()
#28 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(206): Illuminate\Database\Query\Grammars\Grammar->compileWheresToArray()
#29 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(101): Illuminate\Database\Query\Grammars\Grammar->compileWheres()
#30 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php(75): Illuminate\Database\Query\Grammars\Grammar->compileComponents()
#31 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2604): Illuminate\Database\Query\Grammars\Grammar->compileSelect()
#32 /var/www/html/vendor/winter/storm/src/Database/MemoryCache.php(138): Illuminate\Database\Query\Builder->toSql()
#33 /var/www/html/vendor/winter/storm/src/Database/MemoryCache.php(55): Winter\Storm\Database\MemoryCache->hash()
#34 /var/www/html/vendor/winter/storm/src/Database/QueryBuilder.php(122): Winter\Storm\Database\MemoryCache->has()
#35 /var/www/html/vendor/winter/storm/src/Database/QueryBuilder.php(102): Winter\Storm\Database\QueryBuilder->getDuplicateCached()
#36 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(710): Winter\Storm\Database\QueryBuilder->get()
#37 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(694): Illuminate\Database\Eloquent\Builder->getModels()
#38 /var/www/html/plugins/pcs/cyberlegalcompliance/services/ComplianceService.php(38): Illuminate\Database\Eloquent\Builder->get()
#39 /var/www/html/plugins/pcs/cyberlegalcompliance/services/ComplianceService.php(78): Pcs\CyberLegalCompliance\Services\ComplianceService->getAllCompliance()
#40 /var/www/html/storage/cms/cache/themes/cyber-legal-compliance/pages/legal-compliance.htm.php(8): Pcs\CyberLegalCompliance\Services\ComplianceService->getAllComplianceGrouped()
#41 /var/www/html/modules/cms/classes/Controller.php(513): Cms6827ab6993bb7398381011_48be689e05d3b1f36e0a879232d19ad1Class->onStart()
#42 /var/www/html/modules/cms/classes/Controller.php(407): Cms\Classes\Controller->execPageCycle()
#43 /var/www/html/modules/cms/classes/Controller.php(220): Cms\Classes\Controller->runPage()
#44 /var/www/html/modules/cms/classes/CmsController.php(41): Cms\Classes\Controller->run()
#45 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Cms\Classes\CmsController->run()
#46 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\Routing\Controller->callAction()
#47 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate\Routing\ControllerDispatcher->dispatch()
#48 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route->runController()
#49 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(798): Illuminate\Routing\Route->run()
#50 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#51 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#52 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#53 /var/www/html/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#54 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
#55 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#56 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#57 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Session\Middleware\StartSession->handle()
#58 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#59 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#60 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#61 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#62 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#63 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(797): Illuminate\Pipeline\Pipeline->then()
#64 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(776): Illuminate\Routing\Router->runRouteWithinStack()
#65 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(740): Illuminate\Routing\Router->runRoute()
#66 /var/www/html/vendor/winter/storm/src/Router/CoreRouter.php(20): Illuminate\Routing\Router->dispatchToRoute()
#67 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): Winter\Storm\Router\CoreRouter->dispatch()
#68 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#69 /var/www/html/plugins/winter/debugbar/middleware/InjectDebugbar.php(31): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#70 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Winter\Debugbar\Middleware\InjectDebugbar->handle()
#71 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#72 /var/www/html/vendor/winter/storm/src/Foundation/Http/Middleware/CheckForMaintenanceMode.php(25): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#73 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Winter\Storm\Foundation\Http\Middleware\CheckForMaintenanceMode->handle()
#74 /var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#75 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Http\Middleware\HandleCors->handle()
#76 /var/www/html/vendor/winter/storm/src/Foundation/Http/Middleware/CheckForTrustedProxies.php(56): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#77 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Winter\Storm\Foundation\Http\Middleware\CheckForTrustedProxies->handle()
#78 /var/www/html/vendor/winter/storm/src/Http/Middleware/TrustHosts.php(46): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#79 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Winter\Storm\Http\Middleware\TrustHosts->handle()
#80 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#81 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\Pipeline\Pipeline->then()
#82 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#83 /var/www/html/index.php(42): Illuminate\Foundation\Http\Kernel->handle()
#84 /var/www/html/server.php(17): require_once('...')
#85 {main}
Workaround
On line 24 of file "vendor/winter/storm/src/Database/Query/Grammars/Concerns/SelectConcatenations.php":
if (property_exists($query, 'concats') && is_array($query->concats) && count($query->concats)) {
$select .= $this->compileConcats($query);
}
@Pasquale-CS what is Awobaz\Compoships\Database\Query\Builder? Seems like you might have replaced the query builder with one of your own and not extended the correct query builder class for where your override is being used.
@LukeTowers Awobaz\Compoships offers the ability to specify relationships based on two (or more) columns in Laravel Eloquent. This is the link of repo:
https://github.com/Awobaz/compoships
Even removing the library the linter gives me error on "/winter/storm/src/Database/Query/Grammars/Concerns/SelectConcatenations.php" on line 22
@Pasquale-CS please provide an example of how we can replicate the issue, ideally using the Test plugin. I haven't ran into this issue myself or heard of anyone else running into it so I'm curious as to what conditions trigger it happening.
Closing as it has been over a month since any activity on this occurred and we are trying to figure out what issues are still relevant. If this is still something that you would like to see through to fruition please respond and we can get the ball rolling.