在 Sylius 中使用新操作创建新控制器
Create new controller with new action in Sylius
我们正在尝试扩展 Resource Controller 并创建我们的 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"
}
有什么争论需要在这里通过吗?
您需要将 Certificate
声明为 sylius 资源,以便资源包编译器知道它并创建适当的服务:
sylius_resource:
resources:
app.certificate:
classes:
model: Full\Certificate\Class\Path\Here
controller: Goldco\Controller\Api\CertificateController
我们正在尝试扩展 Resource Controller 并创建我们的 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"
}
有什么争论需要在这里通过吗?
您需要将 Certificate
声明为 sylius 资源,以便资源包编译器知道它并创建适当的服务:
sylius_resource:
resources:
app.certificate:
classes:
model: Full\Certificate\Class\Path\Here
controller: Goldco\Controller\Api\CertificateController