lewisjenkins / craft-dynamic-fields

Populate Craft fields with dynamic data using the power of Twig.
Other
147 stars 10 forks source link

Getting error in Craft 4 #45

Open 23d1 opened 2 years ago

23d1 commented 2 years ago

foreach() argument must be of type array|object, null given


Stack trace:
#0 /Users/a/Sites/craft/vendor/craftcms/cms/src/web/ErrorHandler.php(77): yii\base\ErrorHandler->handleError(2, 'foreach() argum...', '/Users/a/Sites/...', 54)
#1 /Users/a/Sites/craft/vendor/lewisjenkins/craft-dynamic-fields/src/fields/Dropdown.php(54): craft\web\ErrorHandler->handleError(2, 'foreach() argum...', '/Users/a/Sites/...', 54)
#2 /Users/a/Sites/craft/vendor/craftcms/cms/src/base/Element.php(4661): lewisjenkins\craftdynamicfields\fields\Dropdown->normalizeValue(NULL, Object(benf\neo\elements\Block))
#3 /Users/a/Sites/craft/vendor/craftcms/cms/src/base/Element.php(3653): craft\base\Element->normalizeFieldValue('structure')
#4 /Users/a/Sites/craft/vendor/craftcms/cms/src/fieldlayoutelements/CustomField.php(238): craft\base\Element->getFieldValue('structure')
#5 /Users/a/Sites/craft/vendor/craftcms/cms/src/fieldlayoutelements/BaseField.php(215): craft\fieldlayoutelements\CustomField->inputHtml(Object(benf\neo\elements\Block), false)
#6 /Users/a/Sites/craft/vendor/craftcms/cms/src/fieldlayoutelements/CustomField.php(210): craft\fieldlayoutelements\BaseField->formHtml(Object(benf\neo\elements\Block), false)
#7 /Users/a/Sites/craft/vendor/craftcms/cms/src/web/View.php(1544): craft\fieldlayoutelements\CustomField->craft\fieldlayoutelements\{closure}()
#8 /Users/a/Sites/craft/vendor/craftcms/cms/src/fieldlayoutelements/CustomField.php(211): craft\web\View->namespaceInputs(Object(Closure), 'fields')
#9 /Users/a/Sites/craft/vendor/craftcms/cms/src/models/FieldLayout.php(681): craft\fieldlayoutelements\CustomField->formHtml(Object(benf\neo\elements\Block), false)
#10 /Users/a/Sites/craft/vendor/craftcms/cms/src/web/View.php(1539): craft\models\FieldLayout->craft\models\{closure}()
#11 /Users/a/Sites/craft/vendor/craftcms/cms/src/models/FieldLayout.php(680): craft\web\View->namespaceInputs(Object(Closure), NULL)
#12 /Users/a/Sites/craft/vendor/spicyweb/craft-neo/src/services/Blocks.php(75): craft\models\FieldLayout->createForm(Object(benf\neo\elements\Block))
#13 /Users/a/Sites/craft/vendor/spicyweb/craft-neo/src/assets/InputAsset.php(182): benf\neo\services\Blocks->renderTabs(Object(benf\neo\elements\Block))
#14 /Users/a/Sites/craft/vendor/spicyweb/craft-neo/src/assets/InputAsset.php(135): benf\neo\assets\InputAsset::_getBlockTypesJsSettings(Object(benf\neo\Field), Array, Object(craft\elements\GlobalSet))
#15 /Users/a/Sites/craft/vendor/spicyweb/craft-neo/src/Field.php(418): benf\neo\assets\InputAsset::createInputJs(Object(benf\neo\Field), Object(craft\elements\GlobalSet))
#16 /Users/a/Sites/craft/vendor/craftcms/cms/src/base/Field.php(453): benf\neo\Field->inputHtml(Array, Object(craft\elements\GlobalSet))
#17 /Users/a/Sites/craft/vendor/craftcms/cms/src/fieldlayoutelements/CustomField.php(257): craft\base\Field->getInputHtml(Object(benf\neo\elements\db\BlockQuery), Object(craft\elements\GlobalSet))
#18 /Users/a/Sites/craft/vendor/craftcms/cms/src/fieldlayoutelements/BaseField.php(215): craft\fieldlayoutelements\CustomField->inputHtml(Object(craft\elements\GlobalSet), false)
#19 /Users/a/Sites/craft/vendor/craftcms/cms/src/fieldlayoutelements/CustomField.php(210): craft\fieldlayoutelements\BaseField->formHtml(Object(craft\elements\GlobalSet), false)
#20 /Users/a/Sites/craft/vendor/craftcms/cms/src/web/View.php(1544): craft\fieldlayoutelements\CustomField->craft\fieldlayoutelements\{closure}()
#21 /Users/a/Sites/craft/vendor/craftcms/cms/src/fieldlayoutelements/CustomField.php(211): craft\web\View->namespaceInputs(Object(Closure), 'fields')
#22 /Users/a/Sites/craft/vendor/craftcms/cms/src/models/FieldLayout.php(681): craft\fieldlayoutelements\CustomField->formHtml(Object(craft\elements\GlobalSet), false)
#23 /Users/a/Sites/craft/vendor/craftcms/cms/src/web/View.php(1539): craft\models\FieldLayout->craft\models\{closure}()
#24 /Users/a/Sites/craft/vendor/craftcms/cms/src/models/FieldLayout.php(680): craft\web\View->namespaceInputs(Object(Closure), NULL)
#25 /Users/a/Sites/craft/vendor/craftcms/cms/src/controllers/GlobalsController.php(173): craft\models\FieldLayout->createForm(Object(craft\elements\GlobalSet), false, Array)
#26 [internal function]: craft\controllers\GlobalsController->actionEditContent('footer', Object(craft\elements\GlobalSet))
#27 /Users/a/Sites/craft/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#28 /Users/a/Sites/craft/vendor/yiisoft/yii2/base/Controller.php(178): yii\base\InlineAction->runWithParams(Array)
#29 /Users/a/Sites/craft/vendor/yiisoft/yii2/base/Module.php(552): yii\base\Controller->runAction('edit-content', Array)
#30 /Users/a/Sites/craft/vendor/craftcms/cms/src/web/Application.php(301): yii\base\Module->runAction('globals/edit-co...', Array)
#31 /Users/a/Sites/craft/vendor/yiisoft/yii2/web/Application.php(103): craft\web\Application->runAction('globals/edit-co...', Array)
#32 /Users/a/Sites/craft/vendor/craftcms/cms/src/web/Application.php(286): yii\web\Application->handleRequest(Object(craft\web\Request))
#33 /Users/a/Sites/craft/vendor/yiisoft/yii2/base/Application.php(384): craft\web\Application->handleRequest(Object(craft\web\Request))
#34 /Users/a/Sites/craft/web/index.php(12): yii\base\Application->run()
#35 /Users/a/.composer/vendor/laravel/valet/server.php(234): require('/Users/a/Sites/...')
#36 {main}```
tigerchick commented 1 year ago

I just got this error too in Craft CMS 4.3.2.1

foreach() argument must be of type array|object, null given in ../vendor/lewisjenkins/craft-dynamic-fields/src/fields/Checkboxes.php line 53

Did you ever resolve it?

tigerchick commented 1 year ago

I just got this error too in Craft CMS 4.3.2.1

foreach() argument must be of type array|object, null given in ../vendor/lewisjenkins/craft-dynamic-fields/src/fields/Checkboxes.php line 53

Did you ever resolve it?

My error seems to have gone away again. Not sure what caused it.

rajparekh-pd commented 1 year ago

Getting same error, any solutions?

tigerchick commented 1 year ago

Getting same error, any solutions?

My feeling is that it's related to this: #40 if ( ! $value && $this->isFresh($element) ) :

rajparekh-pd commented 1 year ago

I was able to fix these errors as one of my dynamic field had old twig syntax. As soon I followed craft migration guide it started working.

Thanks for the help!