Symfony2 toString () метод с несколькими переменными

Я построил права, которое связано с несколькими таблицами данных, которые будут использоваться для заполнения «падатьэлемент на форме.

Тем не менее, когда я пытаюсь открыть страницу, он говорит, что у меня есть toString() ошибка. Я обращался с этим раньше с помощью единой сущности, но я не знаю, как справиться с этим в системе множественных отношений.

Вот мой код:

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->??????????;
}
}

Я не уверен, могу ли я вернуть массив или как-то определить его в другом месте. Заранее спасибо!

1

Решение

__toString() один из магических методов PHP:

__toString () позволяет классу решать, как он будет реагировать, когда обрабатывается как строка. Например, что echo $ obj; напечатает. Этот метод должен возвращать строку, так как в противном случае выдается фатальная ошибка уровня E_RECOVERABLE_ERROR.

Это имеет мало общего с Symfony. Я предполагаю, что вы используете один из типы полей сущности доктрины.

По умолчанию тип поля сущности приведёт объект к строке, а PHP попытается вызвать __toString() метод на это. Вы можете предоставить __toString() метод, или явно установите метод, который должен быть вызван вместо этого (см. недвижимость документы).

В любом случае вам нужно вернуть строку, чтобы она могла отображаться в раскрывающемся списке.

Это может быть любая строка:

public function __toString()
{
return 'any string';
}

Вы можете использовать одно из полей:

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

Или генерируйте более сложные строки, даже используйте соавторов вашего объекта:

public function __toString()
{
return $this->title . ' (' . $this->category->getName() . ')';
}

Удостоверьтесь, чтобы проверить, какой объект фактически приводится к строке. Возможно, вы добавляете метод в неправильный класс.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]