创建自定义操作和控制器示例不起作用
Creating Custom Operations and Controllers Example does not work
我刚刚尝试了 https://api-platform.com/docs/core/operations/#recommended-method 示例。
- 我按照描述生成了
Book.class
- 添加
CreateBookPublication
class
- 如果我调用 API 我收到以下错误:
(1/1) RuntimeException
Cannot autowire service "App\Controller\CreateBookPublication": argument "$bookPublishingHandler" of method "__construct()" has type
"App\Controller\BookPublishingHandler" but this class was not found.
你有什么想法吗?
为了测试目的,我想生成一个自己的硬编码响应,没有原则。
看起来你没有BookPublishingHandler
class,你必须自己实现它,这个文档示例不是完全有效的演示。
错误说 DI 试图找到 App\Controller\CreateBookPublication
但它不存在或未注册为服务。我假设您使用的是默认配置,它是自动在 src/
目录中找到的注册服务。
所以创建目录src/Handler
,在里面创建class文件BookPublishingHandler.php
<?php
namespace App\Handler;
use App\Entity\Book;
class BookPublishingHandler
{
public function handle(Book $book): array
{
// your logic for publishing book or/and eg. return your custom data
}
}
并将导入添加到您的 CreateBookPublication 控制器
<?php
namespace App\Controller;
use App\Handler\BookPublishingHandler;
或者您可以直接从控制器测试 return 硬编码数组。
我刚刚尝试了 https://api-platform.com/docs/core/operations/#recommended-method 示例。
- 我按照描述生成了
Book.class
- 添加
CreateBookPublication
class - 如果我调用 API 我收到以下错误:
(1/1) RuntimeException Cannot autowire service "App\Controller\CreateBookPublication": argument "$bookPublishingHandler" of method "__construct()" has type "App\Controller\BookPublishingHandler" but this class was not found.
你有什么想法吗? 为了测试目的,我想生成一个自己的硬编码响应,没有原则。
看起来你没有BookPublishingHandler
class,你必须自己实现它,这个文档示例不是完全有效的演示。
错误说 DI 试图找到 App\Controller\CreateBookPublication
但它不存在或未注册为服务。我假设您使用的是默认配置,它是自动在 src/
目录中找到的注册服务。
所以创建目录src/Handler
,在里面创建class文件BookPublishingHandler.php
<?php
namespace App\Handler;
use App\Entity\Book;
class BookPublishingHandler
{
public function handle(Book $book): array
{
// your logic for publishing book or/and eg. return your custom data
}
}
并将导入添加到您的 CreateBookPublication 控制器
<?php
namespace App\Controller;
use App\Handler\BookPublishingHandler;
或者您可以直接从控制器测试 return 硬编码数组。