【发布时间】:2019-11-24 14:58:24
【问题描述】:
我有一个 USER 实体,它包含两个字段:名字和姓氏。
我想知道如何向我的实体添加一个名为 fullname (firstname + ' ' + upper(lastname)) 的虚拟列。
我已经阅读了关于聚合字段的 Doctrine 文档,但我不确定如何在我的上下文中使用它。
我不想为我将在我的用户上启动的每个 DQL 添加一个 concat 和上公式,但我想在我的实体中添加一个计算字段一次。做一个 PHP getter 不是解决办法。
/**
* User
*
* @ORM\Table(name="[user]")
* @ORM\Entity(repositoryClass="UserRepository")
*/
class User
{
/**
* @var string|null
*
* @ORM\Column(name="lastname", type="string")
*/
private $lastname;
/**
* @var string|null
*
* @ORM\Column(name="firstname", type="string")
*/
private $firstname;
}
如果我将这样的聚合字段添加到我的实体:
/**
* @ORM\Column(type="string")
*/
private $fullName='';
public getFullName(){
return $this->firstname . ' ' . $this->lastname;
}
当我在用户实体(无效的列名)上调用 find() 或 findAll() 时,我的代码崩溃
【问题讨论】:
标签: doctrine-orm doctrine