Я хотел бы использовать эквивалент аннотаций @Formula
Hibernate в сущностях Doctrine.
Моя проблема касается поля datetime
, которое я хотел бы визуализировать в определенном формате (RFC2822), чтобыЯ могу легко использовать его в JavaScript-файле Datatables.
Я бы хотел избежать использования функций render
из Datatables.Я хотел бы использовать эту сущность как обычно из QueryBuilder
.Я уже пытался реализовать класс JsonSerializable
в моей сущности, который довольно хорошо работает, но лежащие в основе ассоциации ManyToOne не json_encoded должным образом.
Вот пример моей сущности:
/**
* @ORM\Table(name="user")
* @ORM\Entity
*/
class User{
/**
* @var int
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var \DateTime|null
*
* @ORM\Column(name="start_date", type="date", nullable=true)
*/
private $startDate;
//Getters & setters...
}
Я использую это в своем UserRepository следующим образом:
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('l, u')
->from('User', 'u')
->join('u.location', 'l')
->where('u.userId=1');
$data['json']=$qb->getQuery()->getResult();
Использование getArrayResult()
не меняет моего интереса.
Я хотел бы создать новый метод (или, может быть,личное статическое поле) как getStartDateRFC()
в моей сущности:
public function getStartDateRFC(){
return $this->startDate->format(DateTime::RFC2822);
}
Было бы возможно без необходимости использовать тяжелые Пользовательские типы сопоставления из Doctrine?