Closed Zae closed 1 month ago
That'd be because not every field has a subFieldLabelPosition
property. You would need to use the proper fragment to check that based on the field type.
{
formieForm(handle: "contactForm") {
rows {
rowFields {
id
... on Field_Name {
subFieldLabelPosition
}
}
}
}
}
In this case, the Name
field type is a sub-field, and the field supports the subFieldLabelPosition
property.
That doesn't sound right, the GQL type says that the property exists on the type, if it doesn't then the type should not say the property exists.
Ah, I see what you mean, that wasn't removed from the general FieldInterface
during our Formie 2 to 3 migration, where we've this change. Previously every field had the subFieldLabelPosition
position, which really is only applicable to sub-fields.
Fixed for the next release. To get this early, run composer require verbb/formie:"dev-craft-5 as 3.0.6"
.
Fixed in 3.0.7
Describe the bug
I have an issue that when I add subFieldLabelPosition to my GQL query the server responds with the following error message in the response.
Getting unknown property: verbb\\formie\\fields\\Checkboxes::subFieldLabelPosition
Steps to reproduce
Form settings
Craft CMS version
5.4.1
Plugin version
3.0.5
Multi-site?
Yes
Additional context
"errors": [ { "debugMessage": "Getting unknown property: verbb\formie\fields\Checkboxes::subFieldLabelPosition", "message": "Internal server error", "extensions": { "category": "internal" }, "trace": [ { "file": "/var/www/html/craft/vendor/yiisoft/yii2/base/Model.php", "line": 1034, "call": "yii\base\Component::__get('subFieldLabelPosition')" }, { "file": "/var/www/html/craft/vendor/verbb/formie/src/gql/types/FieldType.php", "line": 26, "call": "yii\base\Model::offsetGet('subFieldLabelPosition')" }, { "file": "/var/www/html/craft/vendor/craftcms/cms/src/gql/base/ObjectType.php", "line": 47, "call": "verbb\formie\gql\types\FieldType::resolve(instance of verbb\formie\fields\Checkboxes, array(0), array(2), instance of GraphQL\Type\Definition\ResolveInfo)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 623, "call": "craft\gql\base\ObjectType::resolveWithDirectives(instance of verbb\formie\fields\Checkboxes, array(0), array(2), instance of GraphQL\Type\Definition\ResolveInfo)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 549, "call": "GraphQL\Executor\ReferenceExecutor::resolveFieldValueOrError(instance of GraphQL\Type\Definition\FieldDefinition, instance of GraphQL\Language\AST\FieldNode, array(2), instance of verbb\formie\fields\Checkboxes, instance of GraphQL\Type\Definition\ResolveInfo)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1195, "call": "GraphQL\Executor\ReferenceExecutor::resolveField(GraphQLType: Field_Checkboxes, instance of verbb\formie\fields\Checkboxes, instance of ArrayObject(1), array(10))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1145, "call": "GraphQL\Executor\ReferenceExecutor::executeFields(GraphQLType: Field_Checkboxes, instance of verbb\formie\fields\Checkboxes, array(9), instance of ArrayObject(2))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1105, "call": "GraphQL\Executor\ReferenceExecutor::collectAndExecuteSubfields(GraphQLType: Field_Checkboxes, instance of ArrayObject(1), array(9), instance of verbb\formie\fields\Checkboxes)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 973, "call": "GraphQL\Executor\ReferenceExecutor::completeObjectValue(GraphQLType: Field_Checkboxes, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(9), instance of verbb\formie\fields\Checkboxes)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 789, "call": "GraphQL\Executor\ReferenceExecutor::completeAbstractValue(GraphQLType: FieldInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(9), instance of verbb\formie\fields\Checkboxes)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 654, "call": "GraphQL\Executor\ReferenceExecutor::completeValue(GraphQLType: FieldInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(9), instance of verbb\formie\fields\Checkboxes)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 887, "call": "GraphQL\Executor\ReferenceExecutor::completeValueCatchingError(GraphQLType: FieldInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(9), instance of verbb\formie\fields\Checkboxes)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 761, "call": "GraphQL\Executor\ReferenceExecutor::completeListValue(GraphQLType: FieldInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(8), array(1))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 654, "call": "GraphQL\Executor\ReferenceExecutor::completeValue(GraphQLType: FieldInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(8), array(1))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 556, "call": "GraphQL\Executor\ReferenceExecutor::completeValueCatchingError(GraphQLType: FieldInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(8), array(1))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1195, "call": "GraphQL\Executor\ReferenceExecutor::resolveField(GraphQLType: RowType, instance of verbb\formie\models\FieldLayoutRow, instance of ArrayObject(1), array(8))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1145, "call": "GraphQL\Executor\ReferenceExecutor::executeFields(GraphQLType: RowType, instance of verbb\formie\models\FieldLayoutRow, array(7), instance of ArrayObject(1))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1105, "call": "GraphQL\Executor\ReferenceExecutor::collectAndExecuteSubfields(GraphQLType: RowType, instance of ArrayObject(1), array(7), instance of verbb\formie\models\FieldLayoutRow)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 973, "call": "GraphQL\Executor\ReferenceExecutor::completeObjectValue(GraphQLType: RowType, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(7), instance of verbb\formie\models\FieldLayoutRow)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 789, "call": "GraphQL\Executor\ReferenceExecutor::completeAbstractValue(GraphQLType: RowInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(7), instance of verbb\formie\models\FieldLayoutRow)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 654, "call": "GraphQL\Executor\ReferenceExecutor::completeValue(GraphQLType: RowInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(7), instance of verbb\formie\models\FieldLayoutRow)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 887, "call": "GraphQL\Executor\ReferenceExecutor::completeValueCatchingError(GraphQLType: RowInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(7), instance of verbb\formie\models\FieldLayoutRow)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 761, "call": "GraphQL\Executor\ReferenceExecutor::completeListValue(GraphQLType: RowInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(6), array(1))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 654, "call": "GraphQL\Executor\ReferenceExecutor::completeValue(GraphQLType: RowInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(6), array(1))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 556, "call": "GraphQL\Executor\ReferenceExecutor::completeValueCatchingError(GraphQLType: RowInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(6), array(1))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1195, "call": "GraphQL\Executor\ReferenceExecutor::resolveField(GraphQLType: test123_Form, instance of verbb\formie\elements\Form, instance of ArrayObject(1), array(6))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1145, "call": "GraphQL\Executor\ReferenceExecutor::executeFields(GraphQLType: test123_Form, instance of verbb\formie\elements\Form, array(5), instance of ArrayObject(1))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1105, "call": "GraphQL\Executor\ReferenceExecutor::collectAndExecuteSubfields(GraphQLType: test123_Form, instance of ArrayObject(1), array(5), instance of verbb\formie\elements\Form)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 973, "call": "GraphQL\Executor\ReferenceExecutor::completeObjectValue(GraphQLType: test123_Form, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(5), instance of verbb\formie\elements\Form)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 789, "call": "GraphQL\Executor\ReferenceExecutor::completeAbstractValue(GraphQLType: FormInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(5), instance of verbb\formie\elements\Form)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 654, "call": "GraphQL\Executor\ReferenceExecutor::completeValue(GraphQLType: FormInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(5), instance of verbb\formie\elements\Form)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 887, "call": "GraphQL\Executor\ReferenceExecutor::completeValueCatchingError(GraphQLType: FormInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(5), instance of verbb\formie\elements\Form)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 761, "call": "GraphQL\Executor\ReferenceExecutor::completeListValue(GraphQLType: FormInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(4), instance of craft\elements\ElementCollection(1))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 654, "call": "GraphQL\Executor\ReferenceExecutor::completeValue(GraphQLType: FormInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(4), instance of craft\elements\ElementCollection(1))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 556, "call": "GraphQL\Executor\ReferenceExecutor::completeValueCatchingError(GraphQLType: FormInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(4), instance of craft\elements\ElementCollection(1))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1195, "call": "GraphQL\Executor\ReferenceExecutor::resolveField(GraphQLType: contentBlocks_form_BlockType, instance of benf\neo\elements\Block, instance of ArrayObject(1), array(4))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1145, "call": "GraphQL\Executor\ReferenceExecutor::executeFields(GraphQLType: contentBlocks_form_BlockType, instance of benf\neo\elements\Block, array(3), instance of ArrayObject(2))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1105, "call": "GraphQL\Executor\ReferenceExecutor::collectAndExecuteSubfields(GraphQLType: contentBlocks_form_BlockType, instance of ArrayObject(1), array(3), instance of benf\neo\elements\Block)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 973, "call": "GraphQL\Executor\ReferenceExecutor::completeObjectValue(GraphQLType: contentBlocks_form_BlockType, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(3), instance of benf\neo\elements\Block)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 789, "call": "GraphQL\Executor\ReferenceExecutor::completeAbstractValue(GraphQLType: contentBlocks_NeoField, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(3), instance of benf\neo\elements\Block)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 654, "call": "GraphQL\Executor\ReferenceExecutor::completeValue(GraphQLType: contentBlocks_NeoField, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(3), instance of benf\neo\elements\Block)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 887, "call": "GraphQL\Executor\ReferenceExecutor::completeValueCatchingError(GraphQLType: contentBlocks_NeoField, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(3), instance of benf\neo\elements\Block)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 761, "call": "GraphQL\Executor\ReferenceExecutor::completeListValue(GraphQLType: contentBlocks_NeoField, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(2), instance of craft\elements\ElementCollection(5))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 654, "call": "GraphQL\Executor\ReferenceExecutor::completeValue(GraphQLType: contentBlocks_NeoField, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(2), instance of craft\elements\ElementCollection(5))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 556, "call": "GraphQL\Executor\ReferenceExecutor::completeValueCatchingError(GraphQLType: contentBlocks_NeoField, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(2), instance of craft\elements\ElementCollection(5))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1195, "call": "GraphQL\Executor\ReferenceExecutor::resolveField(GraphQLType: default_Entry, instance of craft\elements\Entry, instance of ArrayObject(1), array(2))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1145, "call": "GraphQL\Executor\ReferenceExecutor::executeFields(GraphQLType: default_Entry, instance of craft\elements\Entry, array(1), instance of ArrayObject(2))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1105, "call": "GraphQL\Executor\ReferenceExecutor::collectAndExecuteSubfields(GraphQLType: default_Entry, instance of ArrayObject(1), array(1), instance of craft\elements\Entry)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 973, "call": "GraphQL\Executor\ReferenceExecutor::completeObjectValue(GraphQLType: default_Entry, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(1), instance of craft\elements\Entry)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 789, "call": "GraphQL\Executor\ReferenceExecutor::completeAbstractValue(GraphQLType: EntryInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(1), instance of craft\elements\Entry)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 654, "call": "GraphQL\Executor\ReferenceExecutor::completeValue(GraphQLType: EntryInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(1), instance of craft\elements\Entry)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 556, "call": "GraphQL\Executor\ReferenceExecutor::completeValueCatchingError(GraphQLType: EntryInterface, instance of ArrayObject(1), instance of GraphQL\Type\Definition\ResolveInfo, array(1), instance of craft\elements\Entry)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 1195, "call": "GraphQL\Executor\ReferenceExecutor::resolveField(GraphQLType: Query, null, instance of ArrayObject(1), array(1))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 264, "call": "GraphQL\Executor\ReferenceExecutor::executeFields(GraphQLType: Query, null, array(0), instance of ArrayObject(1))" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 215, "call": "GraphQL\Executor\ReferenceExecutor::executeOperation(instance of GraphQL\Language\AST\OperationDefinitionNode, null)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/Executor/Executor.php", "line": 156, "call": "GraphQL\Executor\ReferenceExecutor::doExecute()" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/GraphQL.php", "line": 161, "call": "GraphQL\Executor\Executor::promiseToExecute(instance of GraphQL\Executor\Promise\Adapter\SyncPromiseAdapter, instance of GraphQL\Type\Schema, instance of GraphQL\Language\AST\DocumentNode, null, array(2), null, 'MyQuery', null)" }, { "file": "/var/www/html/craft/vendor/webonyx/graphql-php/src/GraphQL.php", "line": 93, "call": "GraphQL\GraphQL::promiseToExecute(instance of GraphQL\Executor\Promise\Adapter\SyncPromiseAdapter, instance of GraphQL\Type\Schema, 'query MyQuery {\n entry(id: \"400\") {\n id\n ... on default_Entry {\n id\n contentBlocks {\n ... on contentBlocks_form_BlockType {\n id\n form {\n rows {\n rowFields {\n id\n subFieldLabelPosition\n }\n }\n }\n }\n }\n }\n }\n}\n', null, array(2), null, 'MyQuery', null, array(26))" }, { "file": "/var/www/html/craft/vendor/craftcms/cms/src/services/Gql.php", "line": 526, "call": "GraphQL\GraphQL::executeQuery(instance of GraphQL\Type\Schema, 'query MyQuery {\n entry(id: \"400\") {\n id\n ... on default_Entry {\n id\n contentBlocks {\n ... on contentBlocks_form_BlockType {\n id\n form {\n rows {\n rowFields {\n id\n subFieldLabelPosition\n }\n }\n }\n }\n }\n }\n }\n}\n', null, array(2), null, 'MyQuery', null, array(26))" }, { "file": "/var/www/html/craft/vendor/craftcms/cms/src/controllers/GraphqlController.php", "line": 195, "call": "craft\services\Gql::executeQuery(instance of craft\models\GqlSchema, 'query MyQuery {\n entry(id: \"400\") {\n id\n ... on default_Entry {\n id\n contentBlocks {\n ... on contentBlocks_form_BlockType {\n id\n form {\n rows {\n rowFields {\n id\n subFieldLabelPosition\n }\n }\n }\n }\n }\n }\n }\n}\n', null, 'MyQuery', true)" }, { "call": "craft\controllers\GraphqlController::actionApi()" }, { "file": "/var/www/html/craft/vendor/yiisoft/yii2/base/InlineAction.php", "line": 57, "function": "call_user_func_array(array(2), array(0))" }, { "file": "/var/www/html/craft/vendor/yiisoft/yii2/base/Controller.php", "line": 178, "call": "yii\base\InlineAction::runWithParams(array(2))" }, { "file": "/var/www/html/craft/vendor/yiisoft/yii2/base/Module.php", "line": 552, "call": "yii\base\Controller::runAction('api', array(2))" }, { "file": "/var/www/html/craft/vendor/craftcms/cms/src/web/Application.php", "line": 350, "call": "yii\base\Module::runAction('graphql/api', array(2))" }, { "file": "/var/www/html/craft/vendor/craftcms/cms/src/web/Application.php", "line": 649, "call": "craft\web\Application::runAction('graphql/api', array(2))" }, { "file": "/var/www/html/craft/vendor/craftcms/cms/src/web/Application.php", "line": 312, "call": "craft\web\Application::_processActionRequest(instance of craft\web\Request)" }, { "file": "/var/www/html/craft/vendor/yiisoft/yii2/base/Application.php", "line": 384, "call": "craft\web\Application::handleRequest(instance of craft\web\Request)" }, { "file": "/var/www/html/craft/web/index.php", "line": 19, "call": "yii\base\Application::run()" } ] } ],