我想@Formula在 Doctrine 实体中使用相当于 Hibernate 的注释。
我的问题是关于datetime我想以某种格式(RFC2822)呈现的字段,以便我可以在 Datatables javascript 中轻松使用它。
我想避免使用数据表中的render功能。我想像往常一样使用这个实体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中繁重的自定义映射类型?