You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

API Platform中Doctrine ManyToOne注解cascade参数类型错误求解

问题排查结果

你收到的报错是因为Doctrine的ManyToOne注解要求cascade参数必须为数组或null,但你传入了字符串类型的值,直接触发了参数类型校验失败。

具体需要修改的代码

1. 修复Post实体category属性的关联注解(当前报错的核心原因)

你当前的代码写法为:

/**
 * @ORM\ManyToOne(targetEntity=Category::class, inversedBy="posts", cascade="persiste")
 */

存在两处错误:

  • cascade参数值必须用数组包裹,不能直接传入字符串
  • 级联操作名拼写错误,正确拼写为persist,你多写了一个尾字母e
    修改后应为:
/**
 * @ORM\ManyToOne(targetEntity=Category::class, inversedBy="posts", cascade={"persist"})
 */

2. 修复Category实体的Groups注解格式(避免后续触发新的参数类型错误)

PHP注解/属性的Groups要求入参必须为数组格式,你当前两处写法都不符合规范:
原有错误写法:

#[Groups('read:Post')]
private $id;

#[Groups('read:Post','write:Post')]
private $name;

修改后应为:

#[Groups(['read:Post'])]
private $id;

#[Groups(['read:Post','write:Post'])]
private $name;

可选优化项(不影响当前报错,仅为代码规范)

Post实体中更新时间字段拼写错误,uptdatedAt多写了一个字母t,建议统一修改为updatedAt,避免后续业务调用时出现属性不存在的问题。


内容的提问来源于stack exchange,提问作者Chlem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 12:09:01