I'm working on a project that automatically translates everything on multi-sites. Our approach is using GraphQL to mutate the content on a different site. But our TableMakerField seems like only has table field in the graphql mutation code.
{
"data": {
"entries": [
{
"title": "Components Demonstration",
"contentBlocks": [
{
"table": {
"__typename": "table_TableMakerField",
"table": "\n <table>\n <thead>\n <tr>\n <th align=\"left\" width=\"\">Store</th><th align=\"left\" width=\"\">North America</th><th align=\"left\" width=\"\">Europe</th><th align=\"left\" width=\"\">International</th>\n </tr>\n </thead>\n\n <tbody><tr><td align=\"left\">Shipping to</td><td align=\"left\">Canada, USA</td><td align=\"left\">Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…</td><td align=\"left\">Australia, Japan, New Zealand, Singapore, Brazil</td></tr><tr><td align=\"left\">Waranty</td><td align=\"left\">One-year warranty. Tulip covers shipping costs for warranty service. See Terms. </td><td align=\"left\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td><td align=\"left\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td></tr>\n\n </tbody>\n\n </table>\n ",
"columns": [
{
"heading": "Store",
"width": "",
"align": "left"
},
{
"heading": "North America",
"width": "",
"align": "left"
},
{
"heading": "Europe",
"width": "",
"align": "left"
},
{
"heading": "International",
"width": "",
"align": "left"
}
],
"rows": [
[
"Shipping to",
"Canada, USA",
"Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…",
"Australia, Japan, New Zealand, Singapore, Brazil"
],
[
"Waranty",
"One-year warranty. Tulip covers shipping costs for warranty service. See Terms. ",
"One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.",
"One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms."
]
]
}
}
]
}
]
}
}
So according to the response, what I expect is compose a GraphQL mutation query to change the columns and rows on sites in other languages. However the only field I could use in the mutation is table. So I tried use the table html in the above response.
{
"errors": [
{
"debugMessage": "Syntax error",
"message": "Internal server error",
"extensions": {
"category": "internal"
},
"trace": [
{
"file": "/var/www/html/vendor/yiisoft/yii2/helpers/BaseJson.php",
"line": 128,
"call": "yii\\helpers\\BaseJson::handleJsonError(4)"
},
{
"file": "/var/www/html/vendor/verbb/tablemaker/src/fields/TableMakerField.php",
"line": 51,
"call": "yii\\helpers\\BaseJson::decode('\n <table>\n <thead>\n <tr>\n <th align=\"left\" width=\"\">Store</th><th align=\"left\" width=\"\">North America</th><th align=\"left\" width=\"\">Europe</th><th align=\"left\" width=\"\">International</th>\n </tr>\n </thead>\n\n <tbody><tr><td align=\"left\">Shipping to</td><td align=\"left\">Canada, USA</td><td align=\"left\">Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…</td><td align=\"left\">Australia, Japan, New Zealand, Singapore, Brazil</td></tr><tr><td align=\"left\">Waranty</td><td align=\"left\">One-year warranty. Tulip covers shipping costs for warranty service. See Terms. </td><td align=\"left\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td><td align=\"left\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td></tr>\n\n </tbody>\n\n </table>\n ')"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/base/Element.php",
"line": 4296,
"call": "verbb\\tablemaker\\fields\\TableMakerField::normalizeValue('\n <table>\n <thead>\n <tr>\n <th align=\"left\" width=\"\">Store</th><th align=\"left\" width=\"\">North America</th><th align=\"left\" width=\"\">Europe</th><th align=\"left\" width=\"\">International</th>\n </tr>\n </thead>\n\n <tbody><tr><td align=\"left\">Shipping to</td><td align=\"left\">Canada, USA</td><td align=\"left\">Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…</td><td align=\"left\">Australia, Japan, New Zealand, Singapore, Brazil</td></tr><tr><td align=\"left\">Waranty</td><td align=\"left\">One-year warranty. Tulip covers shipping costs for warranty service. See Terms. </td><td align=\"left\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td><td align=\"left\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td></tr>\n\n </tbody>\n\n </table>\n ', instance of craft\\elements\\MatrixBlock)"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/base/Element.php",
"line": 3355,
"call": "craft\\base\\Element::normalizeFieldValue('table')"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/base/Element.php",
"line": 1764,
"call": "craft\\base\\Element::getFieldValue('table')"
},
{
"file": "/var/www/html/vendor/yiisoft/yii2/validators/Validator.php",
"line": 258,
"call": "craft\\base\\Element::__get('table')"
},
{
"file": "/var/www/html/vendor/yiisoft/yii2/base/Model.php",
"line": 367,
"call": "yii\\validators\\Validator::validateAttributes(instance of craft\\elements\\MatrixBlock, array(3))"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/fields/Matrix.php",
"line": 794,
"call": "yii\\base\\Model::validate()"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/base/Element.php",
"line": 2123,
"call": "craft\\fields\\Matrix::validateBlocks(instance of craft\\elements\\Entry, null)"
},
{
"file": "/var/www/html/vendor/yiisoft/yii2/validators/InlineValidator.php",
"line": 84,
"call": "craft\\base\\Element::validateCustomFieldAttribute('field:contentBlocks', array(3), instance of yii\\validators\\InlineValidator, instance of craft\\elements\\db\\MatrixBlockQuery(1))"
},
{
"file": "/var/www/html/vendor/yiisoft/yii2/validators/Validator.php",
"line": 261,
"call": "yii\\validators\\InlineValidator::validateAttribute(instance of craft\\elements\\Entry, 'field:contentBlocks')"
},
{
"file": "/var/www/html/vendor/yiisoft/yii2/base/Model.php",
"line": 367,
"call": "yii\\validators\\Validator::validateAttributes(instance of craft\\elements\\Entry, array(1))"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/services/Elements.php",
"line": 2552,
"call": "yii\\base\\Model::validate()"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/services/Elements.php",
"line": 785,
"call": "craft\\services\\Elements::_saveElementInternal(instance of craft\\elements\\Entry, true, true, null)"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/gql/base/ElementMutationResolver.php",
"line": 164,
"call": "craft\\services\\Elements::saveElement(instance of craft\\elements\\Entry)"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/gql/resolvers/mutations/Entry.php",
"line": 58,
"call": "craft\\gql\\base\\ElementMutationResolver::saveElement(instance of craft\\elements\\Entry)"
},
{
"file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 623,
"call": "craft\\gql\\resolvers\\mutations\\Entry::saveEntry(null, array(3), array(2), instance of GraphQL\\Type\\Definition\\ResolveInfo)"
},
{
"file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 550,
"call": "GraphQL\\Executor\\ReferenceExecutor::resolveFieldValueOrError(instance of GraphQL\\Type\\Definition\\FieldDefinition, instance of GraphQL\\Language\\AST\\FieldNode, array(2), null, instance of GraphQL\\Type\\Definition\\ResolveInfo)"
},
{
"file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 474,
"call": "GraphQL\\Executor\\ReferenceExecutor::resolveField(GraphQLType: Mutation, null, instance of ArrayObject(1), array(1))"
},
{
"file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 857,
"call": "GraphQL\\Executor\\ReferenceExecutor::GraphQL\\Executor\\{closure}(array(0), 'save_pages_pages_Entry')"
},
{
"call": "GraphQL\\Executor\\ReferenceExecutor::GraphQL\\Executor\\{closure}(array(0), 'save_pages_pages_Entry')"
},
{
"file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 859,
"function": "array_reduce(array(1), instance of Closure, array(0))"
},
{
"file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 490,
"call": "GraphQL\\Executor\\ReferenceExecutor::promiseReduce(array(1), instance of Closure, array(0))"
},
{
"file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php",
"line": 263,
"call": "GraphQL\\Executor\\ReferenceExecutor::executeFieldsSerially(GraphQLType: Mutation, null, array(0), instance of ArrayObject(1))"
},
{
"file": "/var/www/html/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/vendor/webonyx/graphql-php/src/Executor/Executor.php",
"line": 156,
"call": "GraphQL\\Executor\\ReferenceExecutor::doExecute()"
},
{
"file": "/var/www/html/vendor/webonyx/graphql-php/src/GraphQL.php",
"line": 162,
"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, null, null)"
},
{
"file": "/var/www/html/vendor/webonyx/graphql-php/src/GraphQL.php",
"line": 94,
"call": "GraphQL\\GraphQL::promiseToExecute(instance of GraphQL\\Executor\\Promise\\Adapter\\SyncPromiseAdapter, instance of GraphQL\\Type\\Schema, 'mutation {\n save_pages_pages_Entry(\n id: \"216123\"\n contentBlocks: {\n sortOrder: [\n \"230833\"\n ]\n blocks: [\n { \n tableBlock: { \n \tid: \"230833\" \n table: \"\\n <table>\\n <thead>\\n <tr>\\n <th align=\\\"left\\\" width=\\\"\\\">Store</th><th align=\\\"left\\\" width=\\\"\\\">North America</th><th align=\\\"left\\\" width=\\\"\\\">Europe</th><th align=\\\"left\\\" width=\\\"\\\">International</th>\\n </tr>\\n </thead>\\n\\n <tbody><tr><td align=\\\"left\\\">Shipping to</td><td align=\\\"left\\\">Canada, USA</td><td align=\\\"left\\\">Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…</td><td align=\\\"left\\\">Australia, Japan, New Zealand, Singapore, Brazil</td></tr><tr><td align=\\\"left\\\">Waranty</td><td align=\\\"left\\\">One-year warranty. Tulip covers shipping costs for warranty service. See Terms. </td><td align=\\\"left\\\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td><td align=\\\"left\\\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td></tr>\\n\\n </tbody>\\n\\n </table>\\n \"\n \t} \n }\n ]\n }\n siteId: 7\n ) {\n id\n }\n}\n', null, array(2), null, null, null, array(26))"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/services/Gql.php",
"line": 546,
"call": "GraphQL\\GraphQL::executeQuery(instance of GraphQL\\Type\\Schema, 'mutation {\n save_pages_pages_Entry(\n id: \"216123\"\n contentBlocks: {\n sortOrder: [\n \"230833\"\n ]\n blocks: [\n { \n tableBlock: { \n \tid: \"230833\" \n table: \"\\n <table>\\n <thead>\\n <tr>\\n <th align=\\\"left\\\" width=\\\"\\\">Store</th><th align=\\\"left\\\" width=\\\"\\\">North America</th><th align=\\\"left\\\" width=\\\"\\\">Europe</th><th align=\\\"left\\\" width=\\\"\\\">International</th>\\n </tr>\\n </thead>\\n\\n <tbody><tr><td align=\\\"left\\\">Shipping to</td><td align=\\\"left\\\">Canada, USA</td><td align=\\\"left\\\">Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…</td><td align=\\\"left\\\">Australia, Japan, New Zealand, Singapore, Brazil</td></tr><tr><td align=\\\"left\\\">Waranty</td><td align=\\\"left\\\">One-year warranty. Tulip covers shipping costs for warranty service. See Terms. </td><td align=\\\"left\\\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td><td align=\\\"left\\\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td></tr>\\n\\n </tbody>\\n\\n </table>\\n \"\n \t} \n }\n ]\n }\n siteId: 7\n ) {\n id\n }\n}\n', null, array(2), null, null, null, array(26))"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/controllers/GraphqlController.php",
"line": 172,
"call": "craft\\services\\Gql::executeQuery(instance of craft\\models\\GqlSchema, 'mutation {\n save_pages_pages_Entry(\n id: \"216123\"\n contentBlocks: {\n sortOrder: [\n \"230833\"\n ]\n blocks: [\n { \n tableBlock: { \n \tid: \"230833\" \n table: \"\\n <table>\\n <thead>\\n <tr>\\n <th align=\\\"left\\\" width=\\\"\\\">Store</th><th align=\\\"left\\\" width=\\\"\\\">North America</th><th align=\\\"left\\\" width=\\\"\\\">Europe</th><th align=\\\"left\\\" width=\\\"\\\">International</th>\\n </tr>\\n </thead>\\n\\n <tbody><tr><td align=\\\"left\\\">Shipping to</td><td align=\\\"left\\\">Canada, USA</td><td align=\\\"left\\\">Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…</td><td align=\\\"left\\\">Australia, Japan, New Zealand, Singapore, Brazil</td></tr><tr><td align=\\\"left\\\">Waranty</td><td align=\\\"left\\\">One-year warranty. Tulip covers shipping costs for warranty service. See Terms. </td><td align=\\\"left\\\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td><td align=\\\"left\\\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td></tr>\\n\\n </tbody>\\n\\n </table>\\n \"\n \t} \n }\n ]\n }\n siteId: 7\n ) {\n id\n }\n}\n', null, null, true)"
},
{
"call": "craft\\controllers\\GraphqlController::actionApi()"
},
{
"file": "/var/www/html/vendor/yiisoft/yii2/base/InlineAction.php",
"line": 57,
"function": "call_user_func_array(array(2), array(0))"
},
{
"file": "/var/www/html/vendor/yiisoft/yii2/base/Controller.php",
"line": 178,
"call": "yii\\base\\InlineAction::runWithParams(array(1))"
},
{
"file": "/var/www/html/vendor/yiisoft/yii2/base/Module.php",
"line": 552,
"call": "yii\\base\\Controller::runAction('api', array(1))"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/web/Application.php",
"line": 293,
"call": "yii\\base\\Module::runAction('graphql/api', array(1))"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/web/Application.php",
"line": 602,
"call": "craft\\web\\Application::runAction('graphql/api', array(1))"
},
{
"file": "/var/www/html/vendor/craftcms/cms/src/web/Application.php",
"line": 272,
"call": "craft\\web\\Application::_processActionRequest(instance of craft\\web\\Request)"
},
{
"file": "/var/www/html/vendor/yiisoft/yii2/base/Application.php",
"line": 384,
"call": "craft\\web\\Application::handleRequest(instance of craft\\web\\Request)"
},
{
"file": "/var/www/html/public/index.php",
"line": 21,
"call": "yii\\base\\Application::run()"
}
]
}
],
"data": {
"save_pages_pages_Entry": null
}
}
We got a json decode error. Am I supposed to pass a json string? What is the correct way to do it?
Question
I'm working on a project that automatically translates everything on multi-sites. Our approach is using GraphQL to mutate the content on a different site. But our TableMakerField seems like only has
tablefield in the graphql mutation code.Here is the code I tried:
Query:
{ entries(siteId: 1, drafts: false, sectionId: 5, id: 216123) { ... on pages_pages_Entry { title contentBlocks { ... on contentBlocks_tableBlock_BlockType { table { __typename table columns { heading width align } rows } } } } } }Response:
{ "data": { "entries": [ { "title": "Components Demonstration", "contentBlocks": [ { "table": { "__typename": "table_TableMakerField", "table": "\n <table>\n <thead>\n <tr>\n <th align=\"left\" width=\"\">Store</th><th align=\"left\" width=\"\">North America</th><th align=\"left\" width=\"\">Europe</th><th align=\"left\" width=\"\">International</th>\n </tr>\n </thead>\n\n <tbody><tr><td align=\"left\">Shipping to</td><td align=\"left\">Canada, USA</td><td align=\"left\">Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…</td><td align=\"left\">Australia, Japan, New Zealand, Singapore, Brazil</td></tr><tr><td align=\"left\">Waranty</td><td align=\"left\">One-year warranty. Tulip covers shipping costs for warranty service. See Terms. </td><td align=\"left\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td><td align=\"left\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td></tr>\n\n </tbody>\n\n </table>\n ", "columns": [ { "heading": "Store", "width": "", "align": "left" }, { "heading": "North America", "width": "", "align": "left" }, { "heading": "Europe", "width": "", "align": "left" }, { "heading": "International", "width": "", "align": "left" } ], "rows": [ [ "Shipping to", "Canada, USA", "Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…", "Australia, Japan, New Zealand, Singapore, Brazil" ], [ "Waranty", "One-year warranty. Tulip covers shipping costs for warranty service. See Terms. ", "One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.", "One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms." ] ] } } ] } ] } }So according to the response, what I expect is compose a GraphQL mutation query to change the
columnsandrowson sites in other languages. However the only field I could use in the mutation istable. So I tried use the table html in the above response.Here is the GraphQL mutation I tried:
Got the error:
{ "errors": [ { "debugMessage": "Syntax error", "message": "Internal server error", "extensions": { "category": "internal" }, "trace": [ { "file": "/var/www/html/vendor/yiisoft/yii2/helpers/BaseJson.php", "line": 128, "call": "yii\\helpers\\BaseJson::handleJsonError(4)" }, { "file": "/var/www/html/vendor/verbb/tablemaker/src/fields/TableMakerField.php", "line": 51, "call": "yii\\helpers\\BaseJson::decode('\n <table>\n <thead>\n <tr>\n <th align=\"left\" width=\"\">Store</th><th align=\"left\" width=\"\">North America</th><th align=\"left\" width=\"\">Europe</th><th align=\"left\" width=\"\">International</th>\n </tr>\n </thead>\n\n <tbody><tr><td align=\"left\">Shipping to</td><td align=\"left\">Canada, USA</td><td align=\"left\">Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…</td><td align=\"left\">Australia, Japan, New Zealand, Singapore, Brazil</td></tr><tr><td align=\"left\">Waranty</td><td align=\"left\">One-year warranty. Tulip covers shipping costs for warranty service. See Terms. </td><td align=\"left\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td><td align=\"left\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td></tr>\n\n </tbody>\n\n </table>\n ')" }, { "file": "/var/www/html/vendor/craftcms/cms/src/base/Element.php", "line": 4296, "call": "verbb\\tablemaker\\fields\\TableMakerField::normalizeValue('\n <table>\n <thead>\n <tr>\n <th align=\"left\" width=\"\">Store</th><th align=\"left\" width=\"\">North America</th><th align=\"left\" width=\"\">Europe</th><th align=\"left\" width=\"\">International</th>\n </tr>\n </thead>\n\n <tbody><tr><td align=\"left\">Shipping to</td><td align=\"left\">Canada, USA</td><td align=\"left\">Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…</td><td align=\"left\">Australia, Japan, New Zealand, Singapore, Brazil</td></tr><tr><td align=\"left\">Waranty</td><td align=\"left\">One-year warranty. Tulip covers shipping costs for warranty service. See Terms. </td><td align=\"left\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td><td align=\"left\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td></tr>\n\n </tbody>\n\n </table>\n ', instance of craft\\elements\\MatrixBlock)" }, { "file": "/var/www/html/vendor/craftcms/cms/src/base/Element.php", "line": 3355, "call": "craft\\base\\Element::normalizeFieldValue('table')" }, { "file": "/var/www/html/vendor/craftcms/cms/src/base/Element.php", "line": 1764, "call": "craft\\base\\Element::getFieldValue('table')" }, { "file": "/var/www/html/vendor/yiisoft/yii2/validators/Validator.php", "line": 258, "call": "craft\\base\\Element::__get('table')" }, { "file": "/var/www/html/vendor/yiisoft/yii2/base/Model.php", "line": 367, "call": "yii\\validators\\Validator::validateAttributes(instance of craft\\elements\\MatrixBlock, array(3))" }, { "file": "/var/www/html/vendor/craftcms/cms/src/fields/Matrix.php", "line": 794, "call": "yii\\base\\Model::validate()" }, { "file": "/var/www/html/vendor/craftcms/cms/src/base/Element.php", "line": 2123, "call": "craft\\fields\\Matrix::validateBlocks(instance of craft\\elements\\Entry, null)" }, { "file": "/var/www/html/vendor/yiisoft/yii2/validators/InlineValidator.php", "line": 84, "call": "craft\\base\\Element::validateCustomFieldAttribute('field:contentBlocks', array(3), instance of yii\\validators\\InlineValidator, instance of craft\\elements\\db\\MatrixBlockQuery(1))" }, { "file": "/var/www/html/vendor/yiisoft/yii2/validators/Validator.php", "line": 261, "call": "yii\\validators\\InlineValidator::validateAttribute(instance of craft\\elements\\Entry, 'field:contentBlocks')" }, { "file": "/var/www/html/vendor/yiisoft/yii2/base/Model.php", "line": 367, "call": "yii\\validators\\Validator::validateAttributes(instance of craft\\elements\\Entry, array(1))" }, { "file": "/var/www/html/vendor/craftcms/cms/src/services/Elements.php", "line": 2552, "call": "yii\\base\\Model::validate()" }, { "file": "/var/www/html/vendor/craftcms/cms/src/services/Elements.php", "line": 785, "call": "craft\\services\\Elements::_saveElementInternal(instance of craft\\elements\\Entry, true, true, null)" }, { "file": "/var/www/html/vendor/craftcms/cms/src/gql/base/ElementMutationResolver.php", "line": 164, "call": "craft\\services\\Elements::saveElement(instance of craft\\elements\\Entry)" }, { "file": "/var/www/html/vendor/craftcms/cms/src/gql/resolvers/mutations/Entry.php", "line": 58, "call": "craft\\gql\\base\\ElementMutationResolver::saveElement(instance of craft\\elements\\Entry)" }, { "file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 623, "call": "craft\\gql\\resolvers\\mutations\\Entry::saveEntry(null, array(3), array(2), instance of GraphQL\\Type\\Definition\\ResolveInfo)" }, { "file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 550, "call": "GraphQL\\Executor\\ReferenceExecutor::resolveFieldValueOrError(instance of GraphQL\\Type\\Definition\\FieldDefinition, instance of GraphQL\\Language\\AST\\FieldNode, array(2), null, instance of GraphQL\\Type\\Definition\\ResolveInfo)" }, { "file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 474, "call": "GraphQL\\Executor\\ReferenceExecutor::resolveField(GraphQLType: Mutation, null, instance of ArrayObject(1), array(1))" }, { "file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 857, "call": "GraphQL\\Executor\\ReferenceExecutor::GraphQL\\Executor\\{closure}(array(0), 'save_pages_pages_Entry')" }, { "call": "GraphQL\\Executor\\ReferenceExecutor::GraphQL\\Executor\\{closure}(array(0), 'save_pages_pages_Entry')" }, { "file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 859, "function": "array_reduce(array(1), instance of Closure, array(0))" }, { "file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 490, "call": "GraphQL\\Executor\\ReferenceExecutor::promiseReduce(array(1), instance of Closure, array(0))" }, { "file": "/var/www/html/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php", "line": 263, "call": "GraphQL\\Executor\\ReferenceExecutor::executeFieldsSerially(GraphQLType: Mutation, null, array(0), instance of ArrayObject(1))" }, { "file": "/var/www/html/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/vendor/webonyx/graphql-php/src/Executor/Executor.php", "line": 156, "call": "GraphQL\\Executor\\ReferenceExecutor::doExecute()" }, { "file": "/var/www/html/vendor/webonyx/graphql-php/src/GraphQL.php", "line": 162, "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, null, null)" }, { "file": "/var/www/html/vendor/webonyx/graphql-php/src/GraphQL.php", "line": 94, "call": "GraphQL\\GraphQL::promiseToExecute(instance of GraphQL\\Executor\\Promise\\Adapter\\SyncPromiseAdapter, instance of GraphQL\\Type\\Schema, 'mutation {\n save_pages_pages_Entry(\n id: \"216123\"\n contentBlocks: {\n sortOrder: [\n \"230833\"\n ]\n blocks: [\n { \n tableBlock: { \n \tid: \"230833\" \n table: \"\\n <table>\\n <thead>\\n <tr>\\n <th align=\\\"left\\\" width=\\\"\\\">Store</th><th align=\\\"left\\\" width=\\\"\\\">North America</th><th align=\\\"left\\\" width=\\\"\\\">Europe</th><th align=\\\"left\\\" width=\\\"\\\">International</th>\\n </tr>\\n </thead>\\n\\n <tbody><tr><td align=\\\"left\\\">Shipping to</td><td align=\\\"left\\\">Canada, USA</td><td align=\\\"left\\\">Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…</td><td align=\\\"left\\\">Australia, Japan, New Zealand, Singapore, Brazil</td></tr><tr><td align=\\\"left\\\">Waranty</td><td align=\\\"left\\\">One-year warranty. Tulip covers shipping costs for warranty service. See Terms. </td><td align=\\\"left\\\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td><td align=\\\"left\\\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td></tr>\\n\\n </tbody>\\n\\n </table>\\n \"\n \t} \n }\n ]\n }\n siteId: 7\n ) {\n id\n }\n}\n', null, array(2), null, null, null, array(26))" }, { "file": "/var/www/html/vendor/craftcms/cms/src/services/Gql.php", "line": 546, "call": "GraphQL\\GraphQL::executeQuery(instance of GraphQL\\Type\\Schema, 'mutation {\n save_pages_pages_Entry(\n id: \"216123\"\n contentBlocks: {\n sortOrder: [\n \"230833\"\n ]\n blocks: [\n { \n tableBlock: { \n \tid: \"230833\" \n table: \"\\n <table>\\n <thead>\\n <tr>\\n <th align=\\\"left\\\" width=\\\"\\\">Store</th><th align=\\\"left\\\" width=\\\"\\\">North America</th><th align=\\\"left\\\" width=\\\"\\\">Europe</th><th align=\\\"left\\\" width=\\\"\\\">International</th>\\n </tr>\\n </thead>\\n\\n <tbody><tr><td align=\\\"left\\\">Shipping to</td><td align=\\\"left\\\">Canada, USA</td><td align=\\\"left\\\">Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…</td><td align=\\\"left\\\">Australia, Japan, New Zealand, Singapore, Brazil</td></tr><tr><td align=\\\"left\\\">Waranty</td><td align=\\\"left\\\">One-year warranty. Tulip covers shipping costs for warranty service. See Terms. </td><td align=\\\"left\\\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td><td align=\\\"left\\\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td></tr>\\n\\n </tbody>\\n\\n </table>\\n \"\n \t} \n }\n ]\n }\n siteId: 7\n ) {\n id\n }\n}\n', null, array(2), null, null, null, array(26))" }, { "file": "/var/www/html/vendor/craftcms/cms/src/controllers/GraphqlController.php", "line": 172, "call": "craft\\services\\Gql::executeQuery(instance of craft\\models\\GqlSchema, 'mutation {\n save_pages_pages_Entry(\n id: \"216123\"\n contentBlocks: {\n sortOrder: [\n \"230833\"\n ]\n blocks: [\n { \n tableBlock: { \n \tid: \"230833\" \n table: \"\\n <table>\\n <thead>\\n <tr>\\n <th align=\\\"left\\\" width=\\\"\\\">Store</th><th align=\\\"left\\\" width=\\\"\\\">North America</th><th align=\\\"left\\\" width=\\\"\\\">Europe</th><th align=\\\"left\\\" width=\\\"\\\">International</th>\\n </tr>\\n </thead>\\n\\n <tbody><tr><td align=\\\"left\\\">Shipping to</td><td align=\\\"left\\\">Canada, USA</td><td align=\\\"left\\\">Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark…</td><td align=\\\"left\\\">Australia, Japan, New Zealand, Singapore, Brazil</td></tr><tr><td align=\\\"left\\\">Waranty</td><td align=\\\"left\\\">One-year warranty. Tulip covers shipping costs for warranty service. See Terms. </td><td align=\\\"left\\\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td><td align=\\\"left\\\">One-year warranty. Tulip does not cover shipping costs for warranty service. See Terms.</td></tr>\\n\\n </tbody>\\n\\n </table>\\n \"\n \t} \n }\n ]\n }\n siteId: 7\n ) {\n id\n }\n}\n', null, null, true)" }, { "call": "craft\\controllers\\GraphqlController::actionApi()" }, { "file": "/var/www/html/vendor/yiisoft/yii2/base/InlineAction.php", "line": 57, "function": "call_user_func_array(array(2), array(0))" }, { "file": "/var/www/html/vendor/yiisoft/yii2/base/Controller.php", "line": 178, "call": "yii\\base\\InlineAction::runWithParams(array(1))" }, { "file": "/var/www/html/vendor/yiisoft/yii2/base/Module.php", "line": 552, "call": "yii\\base\\Controller::runAction('api', array(1))" }, { "file": "/var/www/html/vendor/craftcms/cms/src/web/Application.php", "line": 293, "call": "yii\\base\\Module::runAction('graphql/api', array(1))" }, { "file": "/var/www/html/vendor/craftcms/cms/src/web/Application.php", "line": 602, "call": "craft\\web\\Application::runAction('graphql/api', array(1))" }, { "file": "/var/www/html/vendor/craftcms/cms/src/web/Application.php", "line": 272, "call": "craft\\web\\Application::_processActionRequest(instance of craft\\web\\Request)" }, { "file": "/var/www/html/vendor/yiisoft/yii2/base/Application.php", "line": 384, "call": "craft\\web\\Application::handleRequest(instance of craft\\web\\Request)" }, { "file": "/var/www/html/public/index.php", "line": 21, "call": "yii\\base\\Application::run()" } ] } ], "data": { "save_pages_pages_Entry": null } }We got a json decode error. Am I supposed to pass a json string? What is the correct way to do it?
Additional context
No response