【问题标题】:Processor data value error - ApiPlatform 3.0处理器数据值错误 - ApiPlatform 3.0
【发布时间】:2023-02-17 17:24:14
【问题描述】:

我最近将一个巨大的项目从 Apiplatform 2.6 迁移到 3.0。我正在将我的控制器转换为提供者和处理器,但我遇到了一些问题。

我尝试在展示网站上阻止对我的用户的操作。我的端点看起来像那样(id = showcase website id 和 blockOrder = boolean):

#[ApiResource(
operations: [
    new Post(
        uriTemplate: '/shop/{id}/all/block-order/{blockOrder}',
        status: 200,
        processor: UpdateBlockOrderToAllParticipantsProcessor::class,
        read: false,
        deserialize: false,
        serialize: false
    ),
],
normalizationContext: ['groups' => ['shop:read:bo', 'shop:dashboard:bo', 'shop:read:bo', 'lifecycle']],
denormalizationContext: ['groups' => ['shop:write:bo']],
provider: ShopProvider::class
)]

我的问题来自处理器中的值“$data”。我认为我在端点中得到了错误的信息,然后当我在邮递员中调用它时,它抛出了这个错误:

public function process(mixed $data, ApiOperation $operation, array $uriVariables = [], array $context = [])
{
    assert($data instanceof Shop);

    return $response;
}

错误 :

{
    "@context": "/bo/contexts/Error",
    "@type": "hydra:Error",
    "hydra:title": "An error occurred",
    "hydra:description": "Could not resolve argument $data of \"api_platform.action.placeholder::__invoke()\", maybe you forgot to register the controller as a service or missed tagging it with the \"controller.service_arguments\"?",
    ...
}

如何在没有此错误的情况下获取我的商店数据?

【问题讨论】:

  • 请提供更多详细信息,我们无法为您提供此类详细信息。请不要复制图像,而是添加完整的代码块或错误字符串。
  • 我用我的代码更新了我的图像。我不知道如何详细说明。我用我的 shopId 调用这个端点,处理器应该在数据库中返回我的对象​​商店。也许端点是错误的并且 blockOrder 的值导致了错误。也许 ApiPlatform 不允许这种类型的使用。
  • 您能否使用重现错误的最少代码共享一个新项目?

标签: symfony api-platform.com


【解决方案1】:

我面临着同样的问题。

你找到解决办法了吗?

谢谢。

【讨论】:

    猜你喜欢
    • 2013-01-03
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多