Как добавить виртуальный столбец из двух существующих в класс Symfony 2

У меня есть класс User, который сопоставлен с таблицей базы данных и имеет две переменные / столбцы: имя и фамилия:

/**
 * @ORM\Column(type="string", length=255)
 * @Assert\NotBlank()
 * @Assert\Length(max = 255)
 */
private $name;

/**
 * @ORM\Column(type="string", length=255)
 * @Assert\NotBlank()
 * @Assert\Length(max = 255)
 */
private $surname;

И я хотел бы добавить имя, фамилию, которая будет конкатена из двух выше.

Мне это нужно из-за возможности сортировки и поиска по полному имени, и я использую пакет KNPPaginator для создания сортируемой таблицы на выходе. Результат должен быть сортируемым и доступным для поиска столбцом с указанием имени и фамилии.

Решение должно быть желательно в виде аннотации, если это возможно.

Спасибо за любую помощь.

1 ответ

Добавьте свою колонку:

/**
 * @ORM\Column(type="string", length=255)
 * @Assert\NotBlank()
 * @Assert\Length(max = 255)
 */

private $nameSurname;

Добавить обратный вызов жизненного цикла:

/**
 * @ORM\PrePersist
 */
public function setNameSurname()
{
    $this->nameSurname = $this->name . $this->surname;
}

Не забудьте вставить следующую строку в аннотацию класса:

@ORM\HasLifecycleCallbacks()

Все это вы можете прочитать в документации

Другие вопросы по тегам