Symfony2 toString () - Methode mit mehreren Variablen
Ich habe gebaut ein Konzern auszuführen, die Verbände mit mehr als einer weiteren Tabelle für die Daten, die verwendet werden, um füllen Sie eine "dropdown - " - element auf einer form.
Jedoch, wenn ich versuche, öffnen Sie die Seite, es sagt, ich habe eine toString()
Fehler. Ich habe behandelt diese, bevor Sie mit einer einzigen entity-relationship -, aber ich bin ratlos, wie damit umzugehen ist, die auf einer multiple-relationship-Systems.
Hier ist mein code:
class Articles
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="title", type="string", length=255, nullable=false)
*/
private $title;
/**
* @var string
*
* @ORM\Column(name="content", type="text", nullable=false)
*/
private $content;
/**
* @var \DateTime
*
* @ORM\Column(name="datetime", type="datetime", nullable=false)
*/
private $datetime;
/**
* @ORM\ManyToOne(targetEntity="ArticlesCategory", inversedBy="articles")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
private $category;
/**
* @var string
*
* @ORM\Column(name="path", type="string", length=255, nullable=false)
*/
private $path;
/**
* @ORM\ManyToOne(targetEntity="ArticlesAuthor", inversedBy="articles")
* @ORM\JoinColumn(name="author_id", referencedColumnName="id")
*/
private $author;
/**
* @ORM\ManyToOne(targetEntity="Matches", inversedBy="articles")
* @ORM\JoinColumn(name="match_id", referencedColumnName="id")
*/
private $match;
public function __toString()
{
return $this->??????????;
}
}
Ich bin mir nicht sicher, ob ich kann ein array zurückgeben, oder muss irgendwie definieren, die es anderswo. Vielen Dank im Voraus!
__toString
einfach muss wieder ein string. Beliebige string.- Nicht dies im Endeffekt machen es dann nutzlos? Ist das nicht der Punkt von toString() zu formatieren, was es gibt, so dass die Elemente bilden, kann es nutzen?
- Macht er es nicht, nutzlos.
__toString()
wie es aus dem Namen konvertiert ein beliebiges Objekt, das definiert hat, es in einen string. Wenn Sie wollen, Rückgabe-array - erstellentoArray()
Methode und verwenden Sie es. - So konnte ich zurück "12345" und es würde immer noch funktionieren? Ich muss nicht immer, was du bist Sinne von willkürlich.
- Sie können Sie wieder any string. Wie any string. Sobald
"12345"
ist ein string - es wird funktionieren. return $this->title;
wäre schön, für Ihre Person- Auch
return 'Item with ID: ' . $this->id;
arbeiten
Du musst angemeldet sein, um einen Kommentar abzugeben.
__toString()
ist einer von PHP ' s Magische Methoden:Es hat wenig zu tun mit Symfony. Ich vermute, Sie verwenden eine der Lehre Einheit-Feld-Typen.
Standardmäßig die entity-field-type-cast ein Objekt zu string und PHP wird versuchen, rufen Sie die
__toString()
- Methode auf. Man kann entweder den__toString()
Methode, oder explizit gesetzt, wird die Methode, die aufgerufen werden soll, statt (siehe die Eigenschaft docs).Entweder Weg, müssen Sie einen string zurückgeben, so könnte es sein, im Drop-down angezeigt.
Es kann eine beliebige Zeichenfolge sein:
Könnten Sie eines der Felder:
Erzeugen oder komplexere Zeichenfolgen, sogar mit Ihrem Objekt der Mitarbeiter:
Stellen Sie sicher, zu überprüfen, welches Objekt tatsächlich casten zu einem string. Es könnte sein, das Sie hinzufügen die Methode in eine falsche Klasse.