verbb / vizy

A flexible visual editor for Craft CMS
Other
44 stars 8 forks source link

Searchable Vizy field with Super Table blocks throwing error #90

Closed bavodeclercq closed 2 years ago

bavodeclercq commented 2 years ago

Description Publishing/saving entry throwing following error:

vizy.

The problem does not occur when checking off Use this field’s values as search keywords from the Vizy field and/or the Super Table fields.

Steps to reproduce

  1. The entry has a Neo field.
  2. That Neo field has several blocks, including content.
  3. This content block has a Vizy field.
  4. That Vizy has several blocks, where some fields are Super Table fields.

Additional info

engram-design commented 2 years ago

I can't seem to immediately replicate this. Just to confirm that from your Neo > Vizy > Super Table fields, they all have search values enabled?

Are you able to provide the entire stack-trace, just so I can trace back where it's coming from?

bavodeclercq commented 2 years ago

Neo, Vizy and Super Table field are checked.

Exception: Serialization of 'Closure' is not allowed in /app/cms/vendor/yiisoft/yii2/db/Query.php:1399
Stack trace:
#0 /app/cms/vendor/yiisoft/yii2/db/Query.php(1399): serialize(Object(verbb\supertable\elements\db\SuperTableBlockQuery))
#1 /app/cms/vendor/craftcms/cms/src/helpers/StringHelper.php(1689): yii\db\Query->__toString()
#2 /app/cms/vendor/craftcms/cms/src/base/Field.php(527): craft\helpers\StringHelper::toString(Object(verbb\supertable\elements\db\SuperTableBlockQuery), ' ')
#3 /app/cms/vendor/verbb/vizy/src/fields/VizyField.php(389): craft\base\Field->searchKeywords(Object(verbb\supertable\elements\db\SuperTableBlockQuery), Object(benf\neo\elements\Block))
#4 /app/cms/vendor/craftcms/cms/src/base/Field.php(511): verbb\vizy\fields\VizyField->searchKeywords(Object(verbb\vizy\models\NodeCollection), Object(benf\neo\elements\Block))
#5 /app/cms/vendor/craftcms/cms/src/services/Search.php(176): craft\base\Field->getSearchKeywords(Object(verbb\vizy\models\NodeCollection), Object(benf\neo\elements\Block))
#6 /app/cms/vendor/craftcms/cms/src/services/Elements.php(1822): craft\services\Search->indexElementAttributes(Object(benf\neo\elements\Block))
#7 /app/cms/vendor/craftcms/cms/src/services/Elements.php(1733): craft\services\Elements->restoreElements(Array)
#8 /app/cms/vendor/spicyweb/craft-neo/src/services/Fields.php(393): craft\services\Elements->restoreElement(Object(benf\neo\elements\Block))
#9 /app/cms/vendor/spicyweb/craft-neo/src/Field.php(697): benf\neo\services\Fields->duplicateBlocks(Object(benf\neo\Field), Object(craft\elements\Entry), Object(craft\elements\Entry), true)
#10 /app/cms/vendor/craftcms/cms/src/base/Element.php(4122): benf\neo\Field->afterElementPropagate(Object(craft\elements\Entry), false)
#11 /app/cms/vendor/craftcms/cms/src/elements/Entry.php(1722): craft\base\Element->afterPropagate(false)
#12 /app/cms/vendor/craftcms/cms/src/services/Elements.php(1325): craft\elements\Entry->afterPropagate(false)
#13 /app/cms/vendor/craftcms/cms/src/services/Elements.php(887): craft\services\Elements->duplicateElement(Object(craft\elements\Entry), Array)
#14 /app/cms/vendor/craftcms/cms/src/services/Drafts.php(341): craft\services\Elements->updateCanonicalElement(Object(craft\elements\Entry), Array)
#15 /app/cms/vendor/craftcms/cms/src/controllers/EntryRevisionsController.php(521): craft\services\Drafts->applyDraft(Object(craft\elements\Entry))
#16 [internal function]: craft\controllers\EntryRevisionsController->actionPublishDraft()
#17 /app/cms/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#18 /app/cms/vendor/yiisoft/yii2/base/Controller.php(181): yii\base\InlineAction->runWithParams(Array)
#19 /app/cms/vendor/yiisoft/yii2/base/Module.php(534): yii\base\Controller->runAction('publish-draft', Array)
#20 /app/cms/vendor/craftcms/cms/src/web/Application.php(287): yii\base\Module->runAction('entry-revisions...', Array)
#21 /app/cms/vendor/craftcms/cms/src/web/Application.php(596): craft\web\Application->runAction('entry-revisions...', Array)
#22 /app/cms/vendor/craftcms/cms/src/web/Application.php(266): craft\web\Application->_processActionRequest(Object(craft\web\Request))
#23 /app/cms/vendor/yiisoft/yii2/base/Application.php(392): craft\web\Application->handleRequest(Object(craft\web\Request))
#24 /app/cms/web/index.php(22): yii\base\Application->run()
#25 {main}
engram-design commented 2 years ago

Sorry for the delay, but I've also been unable to replicate this with my setup.

image

And as per your same setup, I have "Use this field’s values as search keywords" enabled on:

And I can confirm these values are populating the searchindex database table.

bavodeclercq commented 2 years ago

@engram-design I've tested it again and I can't reproduce it either. I guess it has been fixed by an update from Craft or a plugin. Thanks for checking it.