2013-03-19 86 views
10

試圖創建一個外鍵映射(即映射類產品)時,我收到以下錯誤在我的「創建產品」頁面:主義多對一映射問題

A「__toString()」方法沒有找到 「CJ \ BusinessBundle \ Entity \ Category」類型的對象傳遞給選擇字段。若要 改爲讀取自定義getter,請將選項「屬性」設置爲所需的 屬性路徑。

+2

請參見此問題(http://stackoverflow.com/questions/16702037/how-do-you-define-the-getter-to-use-in-a-crud-form-b​​esides-defining-的toString)。我認爲它可能對你有用。 – Jay 2014-07-12 17:43:22

回答

29

您需要將__toString()方法添加到您的類別實體。例如:

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

PHP的魔術方法__toString()被用於呈現所述對象的文本表示。在這種情況下,在相關實體的表單中選擇類別時將使用類別名稱。

+0

哇,這很快 – Mark 2013-03-19 10:53:45

+0

非常感謝。什麼是需要該功能的邏輯。就像我看到一個錯誤的想法,但我不知道如何處理它。 – chirag7jain 2013-03-19 11:01:29

+0

我編輯了我的答案以澄清這一點。 – 2013-03-19 11:08:44

7

錯誤信息告訴你你需要做什麼。在你的Category實體中,你需要添加一個__toString()方法,這樣當你添加一個產品時,它就知道在表單的選擇框中爲每個項目命名。

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

在上述替換「姓名」與取其字段是用於你的類的可讀的標識符。