2013-03-19 19 views
10

otrzymuję następujący błąd w mojej stronie „Tworzenie produktu” podczas próby utworzenia klucza mapowania obcego (czyli odwzorowanie kategorii do produktu):Doktryna wiele do jednego mapowania Issue

A „__toString()” metoda nie została znaleziona na obiektach typu "CJ \ BusinessBundle \ Entity \ Category" przekazana do pola wyboru. Aby zamiast tego odczytać niestandardowy program pobierający, ustaw opcję "właściwość" na żądaną ścieżkę właściwości .

+2

Zobacz proszę [ten numer] (http://stackoverflow.com/questions/16702037/how-do-you-define-the-getter-to-use-in-a-rrud-form-besides-defining- tostring). Zakładam, że może to być przydatne dla Ciebie. – Jay

Odpowiedz

29

Musisz dodać metodę __toString() do swojej jednostki kategorii. Np

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

PHP magicznym sposób __toString() jest używany do przedstawienia reprezentacji tekstowych obiektu. W takim przypadku nazwa kategorii będzie używana podczas wybierania kategorii w formularzu powiązanego podmiotu.

+0

Wow, to było szybkie – Mark

+0

Wielkie dzięki. Jaka logika wymaga funkcji. Jakbym miał pomysł na błąd, ale nie wiedziałem, co z tym zrobić. – chirag7jain

+0

Edytowałem swoją odpowiedź, aby wyjaśnić ten punkt. –

7

Ten komunikat o błędzie informuje, co należy zrobić. W encji kategorii należy dodać metodę __toString(), aby po dodaniu produktu wiedziała, jak nadać nazwę każdemu elementowi w polu wyboru w formularzu.

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

W powyższym miejscu zamień "nazwę" na dowolne pole, które jest czytelnym identyfikatorem dla danej kategorii.

Powiązane problemy