Метод конструктора, унаследованный от другого класса, не видит мои дополнительные аргументыPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Метод конструктора, унаследованный от другого класса, не видит мои дополнительные аргументы

Сообщение Anonymous »


Я пишу веб-приложение на PHP в рамках Sylius. Я создал новый класс, который наследуется от встроенного в инфраструктуру класса ResourceController:

класс ResourceController расширяет \Sylius\Bundle\ResourceBundle\Controller\ResourceController Класс \Sylius\Bundle\...\ResourceController имеет метод-конструктор с 17 аргументами. В моем классе, который наследует этот класс, мне нужно добавить в конструктор три аргумента. Итак, мой код выглядит так:

публичный отправитель $sender; общественный ChannelContextInterface $channelContext; общественный LocaleContextInterface $localeContext; общественная функция __construct(MetadataInterface $metadata, RequestConfigurationFactoryInterface $requestConfigurationFactory, ?ViewHandlerInterface $viewHandler, RepositoryInterface $repository, FactoryInterface $factory, NewResourceFactoryInterface $newResourceFactory, ObjectManager $manager, SingleResourceProviderInterface $singleResourceProvider, ResourcesCollectionProviderInterface $resourcesFinder, Re sourceFormFactoryInterface $resourceFormFactory, RedirectHandlerInterface $redirectHandler, FlashHelperInterface $flashHelper, AuthorizationCheckerInterface $authorizationChecker, EventDispatcherInterface $eventDispatcher, ?StateMachineInterface $stateMachine, ResourceUpdateHandlerInterface $resourceUpdateHandler, ResourceDeleteHandlerInterface $resourceDeleteHandler, Sender $sender, ChannelContextInterface $channelContext, LocaleContextInterface $localeContext) { родитель::__construct($metadata, $requestConfigurationFactory, $viewHandler, $repository, $factory, $newResourceFactory, $manager, $singleResourceProvider, $resourcesFinder, $resourceFormFactory, $redirectHandler, $flashHelper, $authorizationChecker, $eventDispatcher, $stateMachine, $resourceUpdateHandler, $resourceDeleteHandler); $this->sender = $sender; $this->channelContext = $channelContext; $this->localeContext = $localeContext; } После запуска приложения у меня вылезла (Symfony) ошибка, хотя теоретически я ничего не пропускал (хотя, возможно, я ошибаюсь)

Слишком мало аргументов для функции App\Controller\Resource\ResourceController(), 17 передано [...] в строке 31, а ожидается ровно 20

Фрагмент файла _sylius.yaml:

sylius_customer: Ресурсы: клиент: классы: модель: Приложение\Сущность\Клиент\Клиент репозиторий: App\Repository\CustomerRepository контроллер: App\Controller\Resource\ResourceController И файл config/routes.yaml:

sylius_admin_customer_create: путь: /admin/customers/new методы: [GET,POST] значения по умолчанию: _controller: sylius.controller.customer::createAction Что я делаю не так?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»