Невозможно объявить класс, так как имя уже используется

Я пытаюсь получить данные из своего GraphQL, но он возвращает эту ошибку:

{
  "message": "Cannot declare class App\\GraphQL\\Mutations\\AcceptBooking, because the name is already in use",
  "exception": "Symfony\\Component\\Debug\\Exception\\FatalErrorException",
  "file": "/Users/stevenvaneck/projects/hihiguide/app/Http/GraphQL/Mutations/AcceptBooking.php",
  "line": 14,
  "trace": []
}

AcceptBooking.php

<?php

namespace App\GraphQL\Mutations;

use Auth;
use App\Booking;
use App\Http\Controllers\Email\MailType;
use GraphQL\Type\Definition\ResolveInfo;
use App\Http\Controllers\Email\MailController;
use App\Jobs\Mail\Traveler\SendNewAvailableMail;
use App\Jobs\SMS\SendNewAvailableSMS;
use Nuwave\Lighthouse\Support\Contracts\GraphQLContext;

class AcceptBooking
{
    /**
     * Return a value for the field.
     *
     * @param null $rootValue Usually contains the result returned from the parent field. In this case, it is always `null`.
     * @param array $args The arguments that were passed into the field.
     * @param GraphQLContext|null $context Arbitrary data that is shared between all fields of a single query.
     * @param ResolveInfo $resolveInfo Information about the query itself, such as the execution state, the field name, path to the field from the root, and more.
     *
     * @return mixed
     */
    public function resolve($rootValue, array $args, GraphQLContext $context = null, ResolveInfo $resolveInfo)
    {

      //my code

    }
}

Если я изменю имя класса на что-то случайное, оно снова скажет, что новое имя, которое я ему дал, уже используется.

В моем schema.graphql

type Mutation {
    acceptBooking(data: AcceptInput): String @middleware(checks: ["auth:api"]) @field(resolver: "App\\Http\\GraphQL\\Mutations\\AcceptBooking@resolve")
    declineBooking(data: DeclineInput): String @middleware(checks: ["auth:api"]) @field(resolver: "App\\Http\\GraphQL\\Mutations\\DeclineBooking@resolve")
}

Я использую Lighthouse-php в проекте Laravel.


person Steven van Eck    schedule 09.03.2020    source источник
comment
Похоже, файл включается (обязателен) более одного раза.   -  person Triby    schedule 09.03.2020
comment
попробуйте composer dump-autoload в терминале   -  person iamab.in    schedule 09.03.2020
comment
Пожалуйста, включите текст сообщений об ошибках в свой вопрос.   -  person miken32    schedule 09.03.2020


Ответы (1)


Мой путь к пространству имен был неправильным

namespace App\GraphQL\Mutations;

должен был быть

namespace App\GraphQL\Http\Mutations;
person Steven van Eck    schedule 10.03.2020
comment
Была та же проблема, потому что мой класс находился в подпапке. Контекст: компоненты представления Laravel 7. Мне нравится управлять представлениями в подпапках для разных вещей. Будьте осторожны с пространствами имен, если вы перемещаете вручную - person Cr1xus; 05.04.2020