Интеграция Payum в Symfony 5 возвращает ошибку "нет набора контейнеров" - PullRequest
1 голос
/ 28 февраля 2020

Я установил Payum в моем проекте Symfony 5 (используя эти инструкции ). Когда я пытаюсь вызвать маршрут, /payment/capture/qrak82BzjIVUnylasjXwwC5q3DKw7EPJYQ1z1IYHaHY Symfony находит маршрут, но даже не приходит, чтобы открыть соответствующий контроллер, потому что он выдает мне ошибку:

"Payum \ Bundle \ PayumBundle \ Controller \ CaptureController "не имеет установленного контейнера, вы забыли определить его как подписчика службы"?

Я погуглил эту ошибку, но она кажется крайне редкой, и я не понимаю, как решить проблему.

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Похоже, проблема неправильной конфигурации от владельцев кода, вы можете автоматически пометить весь каталог:

# config/services.yaml

Payum\Bundle\PayumBundle\Controller\:
    resource: '../vendor/payum/payum-bundle/Controller/*'
    tags: ['controller.service_arguments']
0 голосов
/ 21 апреля 2020

Я нашел ответ на https://github.com/Payum/Payum/issues/850

zspine прокомментировал 25 дней go
В качестве временного исправления я настроил службу вручную под config/services.yaml и это работает ...

Payum\Bundle\PayumBundle\Controller\CaptureController:
    calls:
        - [setContainer, ['@service_container']]

Кроме того, копая глубже из этого поста, есть ссылка на https://github.com/Payum/PayumBundle/issues/507

Имея больше услуг

config / services.yaml

services:
    Payum\Bundle\PayumBundle\Controller\AuthorizeController:
        calls:
            - method: setContainer
              arguments: ['@service_container']

    Payum\Bundle\PayumBundle\Controller\CancelController:
        calls:
            - method: setContainer
              arguments: ['@service_container']

    Payum\Bundle\PayumBundle\Controller\CaptureController:
        calls:
            - method: setContainer
              arguments: ['@service_container']

    Payum\Bundle\PayumBundle\Controller\NotifyController:
        calls:
            - method: setContainer
              arguments: ['@service_container']

    Payum\Bundle\PayumBundle\Controller\PayoutController:
        calls:
            - method: setContainer
              arguments: ['@service_container']

    Payum\Bundle\PayumBundle\Controller\RefundController:
        calls:
            - method: setContainer
              arguments: ['@service_container']

    Payum\Bundle\PayumBundle\Controller\SyncController:
        calls:
            - method: setContainer
              arguments: ['@service_container']

...