调用已安装Bundle中Category的getName()报错,是否需关联字段?
问题解决:调用Category的getName()方法报错
报错的直接原因是你的
Category实体类中没有定义getName()方法,和“关联name字段”无关——你已经通过@ORM\ManyToMany正确关联了Category实体,问题出在实体自身的方法缺失。解决步骤:
- 打开
Bundle\CategoryBundle\Entity\Category.php文件,确认是否存在name字段的ORM注解定义(如果没有,先添加字段):/** * @ORM\Column(type="string", length=255, nullable=false) */ private $name; - 为
name字段添加对应的getter方法(必须),可选添加setter方法:/** * 获取分类名称 * @return string|null */ public function getName(): ?string { return $this->name; } /** * 设置分类名称 * @param string $name * @return $this */ public function setName(string $name): self { $this->name = $name; return $this; }
- 打开
补充说明:之前调用
getId()能正常工作,是因为Doctrine实体通常都会默认生成id字段和对应的getId()方法,而name字段的getter需要你手动添加(或者用Doctrine的命令自动生成)。
内容的提问来源于stack exchange,提问作者peace_love
相关产品推荐
相关产品推荐

