core: Checkbox field setcontent where clause exception
I’m playing with the new 5.0.0 beta 5 version of Bolt and I have a problem with checkbox fields in templates. I’m trying to fetch content where a checkbox field is checked, like this.
{% setcontent fooRecords = 'foos' where { checkboxField: true } %}
But I’m getting an exception:
Argument 2 passed to Bolt\Doctrine\JsonHelper::wrapJsonFunction() must be of the type string or null, bool given, called in /srv/www/vendor/bolt/core/src/Storage/SelectQuery.php on line 325
Details
| Question | Answer |
|---|---|
| Relevant Bolt Version | 5.0.0 beta 5 |
| Install type | Composer install |
| BC Break | no |
| PHP version | 7.4.16 |
| Web server | nginx/1.19.3 |
| Database server | MySQL 5.7.32 |
| For UX/UI issues | - |
Steps to reproduce
Contenttype like this:
foos:
name: Foos
singular_name: Foo
fields:
name:
type: text
variant: inline
label: Name
checkboxField:
type: checkbox
Fetch contents like this:
{% setcontent fooRecords = 'foos' where { checkboxField: true } %}
Expected result
Contents according to where clause.
Actual result
Exception:
Argument 2 passed to Bolt\Doctrine\JsonHelper::wrapJsonFunction() must be of the type string or null, bool given, called in /srv/www/vendor/bolt/core/src/Storage/SelectQuery.php on line 325
Stack trace:
TypeError:
Argument 2 passed to Bolt\Doctrine\JsonHelper::wrapJsonFunction() must be of the type string or null, bool given, called in /srv/www/vendor/bolt/core/src/Storage/SelectQuery.php on line 325
at vendor/bolt/core/src/Doctrine/JsonHelper.php:23
at Bolt\Doctrine\JsonHelper::wrapJsonFunction()
(vendor/bolt/core/src/Storage/SelectQuery.php:325)
at Bolt\Storage\SelectQuery->build()
(vendor/bolt/core/src/Storage/Handler/SelectQueryHandler.php:44)
at Bolt\Storage\Handler\SelectQueryHandler->__invoke()
at call_user_func()
(vendor/bolt/core/src/Storage/ContentQueryParser.php:457)
at Bolt\Storage\ContentQueryParser->fetch()
(vendor/bolt/core/src/Storage/Query.php:66)
at Bolt\Storage\Query->getContentByScope()
(vendor/bolt/core/src/Storage/Query.php:86)
at Bolt\Storage\Query->getContentForTwig()
(var/cache/dev/twig/a9/a99dd26a4bb9ce7a3019e8513c7c3ecdee55e2f6566eb0648e2629c5705d3b59.php:139)
at __TwigTemplate_5910ccc0b8688d80c6c414080f4399caf6f7d50e1695877bd8ad7f7844cb8b49->block_main()
(vendor/twig/twig/src/Template.php:171)
at Twig\Template->displayBlock()
(var/cache/dev/twig/5b/5b57a53ec61eb780bb228fd541f88b33d57086bbd6b7ffc27bd025ad55d7cefc.php:219)
at __TwigTemplate_1f1c69ee45af87ebc36a5194ed5e08d7fda52bd54b27c398dee8f2ae51e2af37->doDisplay()
(vendor/twig/twig/src/Template.php:394)
at Twig\Template->displayWithErrorHandling()
(vendor/twig/twig/src/Template.php:367)
at Twig\Template->display()
(var/cache/dev/twig/a9/a99dd26a4bb9ce7a3019e8513c7c3ecdee55e2f6566eb0648e2629c5705d3b59.php:48)
at __TwigTemplate_5910ccc0b8688d80c6c414080f4399caf6f7d50e1695877bd8ad7f7844cb8b49->doDisplay()
(vendor/twig/twig/src/Template.php:394)
at Twig\Template->displayWithErrorHandling()
(vendor/twig/twig/src/Template.php:367)
at Twig\Template->display()
(var/cache/dev/twig/0a/0afa37713518f5bc9d0e4a86d9b75c7160c4a49ab13d5fc31aa10b3414c5a9dc.php:47)
at __TwigTemplate_fcb02321d9a6f1382205ebbac478d1f563d3d0d533c9bf31c4cc325fad0fb623->doDisplay()
(vendor/twig/twig/src/Template.php:394)
at Twig\Template->displayWithErrorHandling()
(vendor/twig/twig/src/Template.php:367)
at Twig\Template->display()
(vendor/twig/twig/src/Template.php:379)
at Twig\Template->render()
(vendor/twig/twig/src/TemplateWrapper.php:40)
at Twig\TemplateWrapper->render()
(vendor/twig/twig/src/Environment.php:277)
at Twig\Environment->render()
(vendor/bolt/core/src/Controller/TwigAwareController.php:108)
at Bolt\Controller\TwigAwareController->render()
(vendor/bolt/core/src/Controller/TwigAwareController.php:158)
at Bolt\Controller\TwigAwareController->renderSingle()
(vendor/bolt/core/src/Controller/Frontend/HomepageController.php:56)
at Bolt\Controller\Frontend\HomepageController->homepage()
(vendor/symfony/http-kernel/HttpKernel.php:157)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
(vendor/symfony/http-kernel/HttpKernel.php:79)
at Symfony\Component\HttpKernel\HttpKernel->handle()
(vendor/symfony/http-kernel/Kernel.php:195)
at Symfony\Component\HttpKernel\Kernel->handle()
(public/index.php:30)
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 16 (6 by maintainers)
Ah, I missed that. Then it’s likely a bug in v4, and not strictly related to the v5 beta.
Not sure how to fix it yet, though. 🤔