verbb / formie

The most user-friendly forms plugin for Craft CMS.
Other
93 stars 68 forks source link

Can't save submission if a table field is nested in a repeater field #1924

Closed jaydensmith closed 1 week ago

jaydensmith commented 2 weeks ago

Describe the bug

This only seems to have become an issue after upgrading to Craft 5 and Formie 3.

Steps to reproduce

  1. Create a form with a table field nested in a repeater field.
  2. Input some data and try to save.

Form settings

Craft CMS version

5.1.10

Plugin version

3.0.0-beta.14

Multi-site?

No

Additional context

Trace:

2024-06-12 12:39:47 [web.ERROR] [craft\errors\InvalidFieldException] craft\errors\InvalidFieldException: Invalid field handle: onsiteContacts in /Users/jaydensmith/public_html/x/vendor/verbb/formie/src/elements/CustomElement.php:205
Stack trace:
#0 /Users/jaydensmith/public_html/x/vendor/verbb/formie/src/elements/CustomElement.php(148): verbb\formie\elements\CustomElement->normalizeFieldValue('onsiteContacts')
#1 /Users/jaydensmith/public_html/x/vendor/verbb/formie/src/elements/Submission.php(599): verbb\formie\elements\CustomElement->getFieldValue('onsiteContacts')
#2 /Users/jaydensmith/public_html/x/vendor/verbb/formie/src/fields/Table.php(264): verbb\formie\elements\Submission->getFieldValue('onsiteContacts')
#3 /Users/jaydensmith/public_html/x/vendor/verbb/formie/src/base/NestedField.php(330): verbb\formie\fields\Table->validateTableData(Object(verbb\formie\elements\Submission))
#4 /Users/jaydensmith/public_html/x/vendor/verbb/formie/src/base/MultiNestedField.php(94): verbb\formie\base\NestedField->normalizeFieldValidator('events.new1.ons...', Array, Object(verbb\formie\fields\Table), Object(verbb\formie\elements\Submission), false)
#5 /Users/jaydensmith/public_html/x/vendor/craftcms/cms/src/base/Element.php(2723): verbb\formie\base\MultiNestedField->validateBlocks(Object(verbb\formie\elements\Submission), NULL)
#6 /Users/jaydensmith/public_html/x/vendor/yiisoft/yii2/validators/InlineValidator.php(77): craft\base\Element->validateCustomFieldAttribute('field:events', Array, Object(yii\validators\InlineValidator), Array)
#7 /Users/jaydensmith/public_html/x/vendor/yiisoft/yii2/validators/Validator.php(260): yii\validators\InlineValidator->validateAttribute(Object(verbb\formie\elements\Submission), 'field:events')
#8 /Users/jaydensmith/public_html/x/vendor/verbb/formie/src/elements/Submission.php(1221): yii\validators\Validator->validateAttributes(Object(verbb\formie\elements\Submission))
#9 /Users/jaydensmith/public_html/x/vendor/yiisoft/yii2/base/Model.php(370): verbb\formie\elements\Submission->afterValidate()
#10 /Users/jaydensmith/public_html/x/vendor/craftcms/cms/src/base/Element.php(2587): yii\base\Model->validate(Array, true)
#11 /Users/jaydensmith/public_html/x/vendor/verbb/formie/src/elements/Submission.php(509): craft\base\Element->validate(NULL, true)
#12 /Users/jaydensmith/public_html/x/vendor/verbb/formie/src/controllers/SubmissionsController.php(521): verbb\formie\elements\Submission->validate()
#13 [internal function]: verbb\formie\controllers\SubmissionsController->actionSubmit()
#14 /Users/jaydensmith/public_html/x/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#15 /Users/jaydensmith/public_html/x/vendor/yiisoft/yii2/base/Controller.php(178): yii\base\InlineAction->runWithParams(Array)
#16 /Users/jaydensmith/public_html/x/vendor/yiisoft/yii2/base/Module.php(552): yii\base\Controller->runAction('submit', Array)
#17 /Users/jaydensmith/public_html/x/vendor/craftcms/cms/src/web/Application.php(349): yii\base\Module->runAction('formie/submissi...', Array)
#18 /Users/jaydensmith/public_html/x/vendor/craftcms/cms/src/web/Application.php(650): craft\web\Application->runAction('formie/submissi...', Array)
#19 /Users/jaydensmith/public_html/x/vendor/craftcms/cms/src/web/Application.php(311): craft\web\Application->_processActionRequest(Object(craft\web\Request))
#20 /Users/jaydensmith/public_html/x/vendor/yiisoft/yii2/base/Application.php(384): craft\web\Application->handleRequest(Object(craft\web\Request))
#21 /Users/jaydensmith/public_html/x/public_html/index.php(25): yii\base\Application->run()
#22 /Users/jaydensmith/.composer/vendor/laravel/valet/server.php(110): require('/Users/jaydensm...')
#23 {main} {"memory":12782264,"exception":"[object] (craft\\errors\\InvalidFieldException(code: 0): Invalid field handle: onsiteContacts at /Users/jaydensmith/public_html/x/vendor/verbb/formie/src/elements/CustomElement.php:205)"} 
engram-design commented 2 weeks ago

Fixed for the next release. To get this early, run composer require verbb/formie:"dev-craft-5 as 3.0.0-beta.14".

engram-design commented 1 week ago

Fixed in 3.0.0-beta.15