【问题标题】:Doctrine Many To One Mapping Issue教义多对一映射问题
【发布时间】:2023-03-11 18:53:01
【问题描述】:

当我尝试创建外键映射(即将类别映射到产品)时,我在“创建产品”页面中收到以下错误:

在类型的对象上找不到“__toString()”方法 “CJ\BusinessBundle\Entity\Category”传递给选择字段。到 改为阅读自定义吸气剂,将选项“属性”设置为所需 属性路径。

【问题讨论】:

  • 请参阅this issue。我认为它可能对你有用。

标签: php symfony doctrine


【解决方案1】:

您需要将__toString() 方法添加到您的类别实体。例如:

public function __toString()
{
    return $this->name;
}

PHP 魔术方法__toString() 用于呈现对象的文本表示。在这种情况下,在相关实体的表单中选择类别时将使用类别名称。

【讨论】:

  • 非常感谢。需要该功能的逻辑是什么。就像我在查看错误时有了一个想法,但我不知道如何处理它。
  • 答案对我没有帮助,我也立即写了一个答案,只是在评论您的卓越速度。 :)
【解决方案2】:

错误消息告诉您需要做什么。在您的 Category 实体中,您需要添加一个 __toString() 方法,以便当您添加产品时,它知道在表单的选择框中为每个项目命名。

public function __toString()
{
    return $this->name;
}

将上面的“名称”替换为您的类别的可读标识符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 2012-02-21
    • 2021-08-22
    • 1970-01-01
    • 2020-09-19
    相关资源
    最近更新 更多