gpt4 book ai didi

symfony - 如何处理计算出的实体属性

转载 作者:行者123 更新时间:2023-12-05 00:29:49 25 4
gpt4 key购买 nike

假设有一个名为 Staff 的实体。

它有许多持久属性,例如:
- 姓名
- 经验
- 年龄

我想创建一个基于经验和年龄的“虚拟”属性,称为“薪水”。例如:$salary = ($experience + $age) * 100

但我不想保留 Salary 属性。原因是我想让 Salary 属性在年龄或经验值发生变化时自动更新。

关于这个我有两个问题:

  • 实体文件是存储 getSalary() 函数的好地方吗?
  • 我怎样才能做到这一点,每当一个 Staff 实体被调用时,薪水变量将填充根据年龄和经验计算的薪水?
  • 最佳答案

    Is the Entity file a good place to store the getSalary() function?



    是的。

    并非实体中的每个字段都必须映射到数据库字段。

    此外,实体可以包含除简单的 getter 和 setter 之外的方法。 IMO 只要这些方法对实体字段进行操作,它们就属于实体。

    How can I make it so that whenever a Staff entity is called, the salary variable will be filled with the salary that is calculated based on age & experience?



    您可以使用 Doctrine 的其中之一 lifecycle events ,例如 postLoad 事件,在实体加载到实体管理器后调用。

    请注意,您不必将计算结果存储在属性中。您的计算很简单,最好定义一个 setter/getter 。

    关于symfony - 如何处理计算出的实体属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16876009/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com