== get(); foreach($exams as $exam) { $exam->load([ 'exam_questions' => function ($query) { $query->groupBy('id'); } ]); } return $exams; } function resolveExamTyperatings($root, $args) { $exams = \GermanAirlinesVa\Schooling\Models\ExamTyperating::where('member_id', $args['memberID'])->get(); foreach($exams as $exam) { $exam->load([ 'exam_questions' => function ($query) { $query->groupBy('id'); } ]); } return $exams; } function resolveTyperatings() { $typeratings = GermanAirlinesVa\Schooling\Models\Typerating::all(); foreach($typeratings as $typerating) { $typerating->load([ 'exam_questions' => function($query) { $query->groupBy('id'); } ]); } return $typeratings; } function resolveMemberRanks() { $ranks = GermanAirlinesVa\Schooling\Models\MemberRank::all(); foreach($ranks as $rank) { $rank->load([ 'exam_questions' => function($query) { $query->groupBy('id'); } ]); } return $rank; } function createExamMemberRank($root, $args) { return GermanAirlinesVa\Schooling\Models\ExamMemberRank::createNew($args['memberID'], $args['memberRankID']); } function resolveCreateExamTyperating($root, $args) { return GermanAirlinesVa\Schooling\Models\ExamTyperating::createNew($args['memberID'], $args['typeratingID']); } == # Content extend type Query { memberRanks: [MemberRank]! typeratings: [Typerating]! examMemberRanks(memberID: ID!): [ExamMemberRank]! examTyperatings(memberID: ID!): [ExamTyperating]! } extend type Mutation { createExamMemberRank(memberID: ID!, memberRankID: ID!): ExamMemberRank! createExamTyperating(memberID: ID!, typeratingID: ID!): ExamTyperating! } type MemberRank { id: ID! name: String! description: String! points: Int! price: Int! badge: String! region: String! exam_questions: [ExamMemberRankQuestion]! @hasMany exams: [ExamMemberRank]! @hasMany } type Typerating { id: ID! name: String! price: Int! exam_questions: [ExamTyperatingQuestion]! @hasMany exams: [ExamTyperating]! @hasMany } type ExamMemberRank { id: ID! member_id: ID! member_rank: MemberRank! @belongsTo start: DateTime! status: ExamStatus! exam_questions: [ExamMemberRankQuestion]! @belongsToMany exam_answers: [ExamMemberRankAnswer]! @belongsToMany } type ExamTyperating { id: ID! member_id: ID! typerating: Typerating! @belongsTo start: DateTime! status: ExamStatus! exam_questions: [ExamTyperatingQuestion]! @belongsToMany exam_answers: [ExamTyperatingAnswer]! @belongsToMany } type ExamMemberRankQuestion { id: ID! member_rank: MemberRank! @belongsTo in_use: Boolean! mandatory: Boolean! text: String! picture: String! exam_answers: [ExamMemberRankAnswer]! @hasMany exam_member_ranks: [ExamMemberRank]! @belongsToMany } type ExamTyperatingQuestion { id: ID! typerating: Typerating! @belongsTo in_use: Boolean! mandatory: Boolean! text: String! picture: String! exam_answers: [ExamTyperatingAnswer]! @hasMany exma_typeratings: [ExamTyperating]! @belongsToMany } type ExamMemberRankAnswer { id: ID! exam_question: ExamMemberRankQuestion! @belongsTo text: String! is_correct: Boolean! exam_member_ranks: [ExamMemberRank]! @belongsToMany } type ExamTyperatingAnswer { id: ID! exam_question: ExamTyperatingQuestion! @belongsTo text: String! is_correct: Boolean! exam_typeratings: [ExamTyperating]! @belongsToMany } enum ExamStatus { open pending closed validated } scalar DateTime @scalar(class: "Nuwave\\Lighthouse\\Schema\\Types\\Scalars\\DateTime")