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

Symfony PropertyAccessor无法读取属性:工单创建表单提交报错

报错核心原因

该报错由两个命名不匹配问题导致,Symfony的PropertyAccessor组件需要严格匹配属性/方法名才能读写实体数据:

  1. Ticket实体的$Etat_Ticket属性缺少对应的公开getter/setter方法,PropertyAccessor无法读取、写入该属性的值
  2. TicketType中Etat_Ticket字段的choice_label配置为Statut(首字母大写),和Etat实体里的小写开头属性$statut不匹配,无法读取选项的显示文本
修复步骤
  1. 给Ticket实体的$Etat_Ticket属性添加合法的getter、setter方法,示例代码如下:
public function getEtatTicket(): ?Etat
{
    return $this->Etat_Ticket;
}

public function setEtatTicket(?Etat $Etat_Ticket): self
{
    $this->Etat_Ticket = $Etat_Ticket;
    return $this;
}

如果要完全符合Symfony编码规范,建议将属性名修改为小驼峰格式$etatTicket,同步修改对应的ORM注解即可。

  1. 修正TicketType中Etat_Ticket字段的choice_label参数,和Etat实体的属性名保持一致:
->add('Etat_Ticket', EntityType::class, [
    'class' => Etat::class,
    'choice_label' => 'statut',
])
  1. 可选优化:你已经在控制器中手动设置了Ticket的Date属性,可将表单中的Date字段设置为不映射到实体,避免数据冲突:
->add('Date', DateTimeType::class, [
    'data' => new \DateTime(),
    'mapped' => false
] )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 03:15:00