试图创建一个外键映射(即映射类产品)时,我收到以下错误在我的“创建产品”页面:主义多对一映射问题
A“__toString()”方法没有找到 “CJ \ BusinessBundle \ Entity \ Category”类型的对象传递给选择字段。若要 改为读取自定义getter,请将选项“属性”设置为所需的 属性路径。
试图创建一个外键映射(即映射类产品)时,我收到以下错误在我的“创建产品”页面:主义多对一映射问题
A“__toString()”方法没有找到 “CJ \ BusinessBundle \ Entity \ Category”类型的对象传递给选择字段。若要 改为读取自定义getter,请将选项“属性”设置为所需的 属性路径。
您需要将__toString()
方法添加到您的类别实体。例如:
public function __toString()
{
return $this->name;
}
PHP的魔术方法__toString()
被用于呈现所述对象的文本表示。在这种情况下,在相关实体的表单中选择类别时将使用类别名称。
哇,这很快 – Mark 2013-03-19 10:53:45
非常感谢。什么是需要该功能的逻辑。就像我看到一个错误的想法,但我不知道如何处理它。 – chirag7jain 2013-03-19 11:01:29
我编辑了我的答案以澄清这一点。 – 2013-03-19 11:08:44
错误信息告诉你你需要做什么。在你的Category实体中,你需要添加一个__toString()方法,这样当你添加一个产品时,它就知道在表单的选择框中为每个项目命名。
public function __toString()
{
return $this->name;
}
在上述替换“姓名”与取其字段是用于你的类的可读的标识符。
请参见此问题(http://stackoverflow.com/questions/16702037/how-do-you-define-the-getter-to-use-in-a-crud-form-besides-defining-的toString)。我认为它可能对你有用。 – Jay 2014-07-12 17:43:22