有没有办法将聚合/计算字段(concat)添加到教义实体



我有一个用户实体,它计算两个字段:名字和姓氏。

我想知道如何向我的实体添加一个名为全名(名字 + ' ' + 大写(姓氏((的虚拟列。

我已经阅读了有关聚合字段的 Doctrine 文档,但我不确定如何在我的上下文中使用它。

我不想向将在用户上启动的每个 DQL 添加 concat 和上层公式,但我想在我的实体中添加一次计算字段。做一个PHPgetter不是一个解决方案。

/**
 * User
 *
 * @ORMTable(name="[user]")
 * @ORMEntity(repositoryClass="UserRepository")
 */
class User
{
    /**
     * @var string|null
     *
     * @ORMColumn(name="lastname", type="string")
     */
    private $lastname;
    /**
     * @var string|null
     *
     * @ORMColumn(name="firstname", type="string")
     */
    private $firstname;
}

如果我将这样的聚合字段添加到我的实体:

/**
 * @ORMColumn(type="string")
 */
private $fullName='';
public getFullName(){
     return $this->firstname . ' ' . $this->lastname;
}

当我在用户实体上调用 find(( 或 findAll(( 时我的代码崩溃(列名无效(

也许这是

错误的方法,做那个"魔术"。如果您只需要视图的全名字段,则可以按原样使用 getter。如果需要持久保存它,则应在其 setter 中连接名字和姓氏字符串并设置 fullname 属性。在这种情况下,您的 getter 应返回该属性。

相关内容

  • 没有找到相关文章

最新更新