Как добавить виртуальный столбец из двух существующих в класс 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()
Все это вы можете прочитать в документации