0

I created a custom module for mutation

with table

when I create mutation is not loading in graphql doc

Type \"PracticeOutput\" not found in document.\n\nException #0 (GraphQL\\Error\\Error)

schema.graphql

type Query {
    Practice: outputdata @resolver(class: "GraphQL\\Practice\\Model\\Resolver\\Output") @doc(description: "The pratice query returns information ")
    Practicid(id:Int! @doc(description: "Get data based on id")):
    outputdata @resolver(class: "GraphQL\\Practice\\Model\\Resolver\\Idoutput") @doc(description: "The pratice query returns information ")
}
type Mutation {
    Createpracticedata (input:practiceinput!): PracticeOutput @resolver(class: "GraphQL\\Practice\\Model\\Resolver\\Create") @doc(description: "The pratice query Create ")
}

type outputdata @doc(description: "Return all data  in the table") {
    id: Int
    name: String
    email: String
    description : String
    publish_date: String

}
type PracticeOutput{
    outputdata:outputdata!
}
input practiceinput{
    name:String @doc(description: "The customer's first name")
    email: String @doc(description: "The customer's email address")
    description:String @doc(description:"The description about data")
}

but query is loading in graphql doc

Only parameter query is accepting not accepting Input - type

1
  • What is your mutation query you have submit?
    – Mujahidh
    Dec 23, 2019 at 7:13

2 Answers 2

2

According to your Shema.graphqls your mutation should look like below.

mutation {
Createpracticedata(
 input:{
    name: "name"
    email: "email"
    description: "description"
 }
){
    id
    name
    email
    description
    publish_date
 }
}

As per your error in the post, you don't need to include PracticeOutput in your Mutation.Just pass the return attributes defined in the output. I wrote an article about How to write grapgQl mutation to create and integrate the contact us page functionality in magento 2.3.2?.

I used graphql Mutation to implement contact us page.Please check that. Hope this answer will help you.

4
  • As per your answer above mutation is displaying a success message that's ok, but how can we display data instead of success message have passed in the input parameter? Jan 17, 2020 at 7:23
  • @ChiragPatel are you referring to contactus custom Mutation? If yes you can return the you can return the input data from your resolver. If you want them to show one by one, then you want to edit your ContactusOutput and define the out ut variables there and pass the values for out put data in the resolver. wHEN YOU CALL THE MUTATION PASSED THE NEWLY ADDED OUTPUTDATA VARIABLE IN GRAPHQL QUERY,
    – Mujahidh
    Jan 20, 2020 at 12:20
  • 1
    Thanks for your valuable time! I will check ContactusOutput and let you know if I facing any other issues. Jan 21, 2020 at 4:38
  • 1
    @ChiragPatel yes please.Always there to help as i can :)
    – Mujahidh
    Jan 21, 2020 at 5:00
1
type PracticeOutput {
outputdata:outputdata!
}
input practiceinput {
name:String @doc(description: "The customer's first name")
email: String @doc(description: "The customer's email address")
description:String @doc(description:"The description about data")
}

Use this. The only problem is space between your type/input name and '{'

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.