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)

Most upvoted comments

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. 🤔