Создать новый контроллер с новым действием в Sylius - PullRequest
0 голосов
/ 29 июня 2018

Мы пытаемся расширить Resource Contoller и создать наш CertificateController, который является новым модулем.

class CertificateController extends ResourceController
{
    /**
     * @param Request $request
     *
     * @return Response
     */
    public function indexAction(Request $request): Response
    {
        echo "cert list";die;
    }

routing.yml:

admin_api_certificate_index:
    path: /
    methods: [GET]
    defaults:
        _controller: sylius.controller.certificate:indexAction
        _sylius:
            serialization_version: $version
            serialization_groups: [Default]
            paginate: $limit
            sortable: true
            sorting:
                id: desc

Я получаю сообщение об ошибке:

{
"code": 500,
"message": "Controller not found: service "sylius.controller.certificate" does not exist."
}

Если я определю услугу:

sylius.controller.certificate:
        class: Goldco\Controller\Api\CertificateController

получаю ошибку вроде:

{
"code": 500,
"message": "Type error: Too few arguments to function Sylius\Bundle\ResourceBundle\Controller\ResourceController::__construct(), 0 passed in E:\GoldCo_PHP\var\cache\dev\Container4rqmf99\getSylius_Controller_CertificateService.php on line 8 and exactly 17 expected"
}

Какие-либо аргументы должны проходить здесь?

1 Ответ

0 голосов
/ 29 июня 2018

Вам необходимо объявить ваш Certificate как ресурс sylius, чтобы этап компиляции пакета ресурсов знал об этом и создал соответствующие службы:

sylius_resource:
  resources:
    app.certificate:
        classes:
            model: Full\Certificate\Class\Path\Here
            controller: Goldco\Controller\Api\CertificateController
...