php - 如何将计算/公式字段添加到 Doctrine 实体中?
问题描述
我想@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中繁重的自定义映射类型?
解决方案
推荐阅读
- mysql - 由于 mysql 进程未正确停止,无法启动 docker。Mysql 在某处运行
- amazon-web-services - 如何使用 AWS CodePipeline 将 dotnet 核心应用程序部署到 ElasticBeanstalk
- laravel - 操作员在 Laravel 中如何工作?
- json - 在 Shell 脚本中读取 JSON 变量
- python - 将 Dataframe 列的值与列表值进行比较
- sql-server - t-SQL - 确定员工工作的天数 - 在现有代码中(计算员工每个期间的 FTE 数量)
- sql - SQLite 查询 - 过滤器名称,其中每个关联的 id 都包含在一组 id 中
- css - 如何创建适用于移动设备和桌面的粘性页脚?
- racket - amb -< 运算符未定义
- rust - 什么是获得解决未来需要多长时间的干净方法?