verbb / formie

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

Phone Number fields trigger an error 500 in 2.1.16 #1905

Closed uandco closed 4 weeks ago

uandco commented 4 weeks ago

Describe the bug

After updating to 2.1.16, phone number fields trigger an error 500:

2024-05-28 09:26:23 [web.INFO] [formie] Submission triggered for enquiryForm. {"memory":3329944} 
2024-05-28 09:26:23 [web.ERROR] [yii\base\InvalidCallException] yii\base\InvalidCallException: Setting read-only property: verbb\formie\models\Phone::countryCode in /app/vendor/yiisoft/yii2/base/Component.php:206
Stack trace:
#0 /app/vendor/yiisoft/yii2/BaseYii.php(558): yii\base\Component->__set('countryCode', '+61')
#1 /app/vendor/yiisoft/yii2/base/BaseObject.php(107): yii\BaseYii::configure(Object(verbb\formie\models\Phone), Array)
#2 /app/vendor/craftcms/cms/src/base/Model.php(78): yii\base\BaseObject->__construct(Array)
#3 /app/vendor/verbb/formie/src/fields/formfields/Phone.php(114): craft\base\Model->__construct(Array)
#4 /app/vendor/craftcms/cms/src/base/Element.php(5344): verbb\formie\fields\formfields\Phone->normalizeValue(Array, Object(verbb\formie\elements\NestedFieldRow))
#5 /app/vendor/craftcms/cms/src/base/Element.php(4173): craft\base\Element->normalizeFieldValue('phoneNumber')
#6 /app/vendor/verbb/formie/src/base/NestedFieldTrait.php(630): craft\base\Element->getFieldValue('phoneNumber')
#7 /app/vendor/verbb/formie/src/base/FormFieldTrait.php(226): verbb\formie\fields\formfields\Group->defineValueAsString(Object(verbb\formie\elements\db\NestedFieldRowQuery), Object(verbb\formie\elements\Submission))
#8 /app/vendor/verbb/formie/src/helpers/Variables.php(419): verbb\formie\base\FormField->getValueAsString(Object(verbb\formie\elements\db\NestedFieldRowQuery), Object(verbb\formie\elements\Submission))
#9 /app/vendor/verbb/formie/src/helpers/Variables.php(398): verbb\formie\helpers\Variables::_getParsedFieldValue(Object(verbb\formie\fields\formfields\Group), Object(verbb\formie\elements\db\NestedFieldRowQuery), Object(verbb\formie\elements\Submission), NULL)
#10 /app/vendor/verbb/formie/src/helpers/Variables.php(278): verbb\formie\helpers\Variables::_getParsedFieldValues(Object(verbb\formie\elements\Form), Object(verbb\formie\elements\Submission), NULL)
#11 /app/vendor/verbb/formie/src/elements/Submission.php(538): verbb\formie\helpers\Variables::getParsedValue('{timestamp}', Object(verbb\formie\elements\Submission), Object(verbb\formie\elements\Form))
#12 /app/vendor/verbb/formie/src/controllers/SubmissionsController.php(611): verbb\formie\elements\Submission->updateTitle(Object(verbb\formie\elements\Form))
#13 [internal function]: verbb\formie\controllers\SubmissionsController->actionSubmit()

This field is nested in a group. Displaying the country code dropdown or not doesn't change the outcome.

Steps to reproduce

  1. Add a phone number field to a form
  2. Submit the form

Form settings

Craft CMS version

Craft Pro 4.9.5

Plugin version

2.1.16

Multi-site?

No

Additional context

Downgrading to 2.1.15 fixes the issue

engram-design commented 4 weeks ago

Should be fixed for the next release. To get this early, run composer require verbb/formie:"dev-craft-4 as 2.1.16".

mstichel commented 4 weeks ago

Should be fixed for the next release. To get this early, run composer require verbb/formie:"dev-craft-4 as 2.1.16".

Works fine, except for the next error showing up. This time on "countryName'

Setting read-only property: verbb\\formie\\models\\Phone::countryName

engram-design commented 4 weeks ago

Ah, my mistake, another fix pushed for that. To get this early, run composer require verbb/formie:"dev-craft-4 as 2.1.16".

engram-design commented 4 weeks ago

Fixed in 2.1.17