【问题标题】:Create new controller with new action in Sylius在 Sylius 中使用新操作创建新控制器
【发布时间】:2018-06-29 07:36:10
【问题描述】:

我们正在尝试扩展资源控制器并创建我们的新模块 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"
}

这里有什么争论需要通过吗?

【问题讨论】:

    标签: symfony sylius


    【解决方案1】:

    您需要将您的 Certificate 声明为 sylius 资源,以便资源包编译器传递知道它并创建相应的服务:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      • 2010-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多