【问题标题】:CakePHP 4 - How to change property - fields mapping in entities?CakePHP 4 - 如何更改属性 - 实体中的字段映射?
【发布时间】:2021-01-04 13:24:15
【问题描述】:

字段会自动暴露给属性,但我想覆盖它。是否可以?如果有怎么办?

这就是我所拥有的: 表:用户

  • 身份证
  • 邮件
  • 用户名

这就是我想要的: 实体:用户

  • $id
  • $email(将映射到邮件)
  • $first_name(将映射到 user_firstname)

请注意,我想这样做是因为它是一个遗留数据库,在代码库完全更新之前我们无法修改。

【问题讨论】:

    标签: php database cakephp entity


    【解决方案1】:

    在实体类中添加

    protected function _getFirstName()
    {
        return $this->user_firstname;
    }
    

    在视图中:

    echo $user->first_name;
    

    阅读更多:

    https://book.cakephp.org/4/en/orm/entities.html#accessors-mutators

    【讨论】:

    • 这是我的想法,但$user->user_firstname 是否仍可访问?
    • 是的。这添加了一个新的虚拟属性,它根本不会改变现有的任何内容。
    • 请确保使用IdeHelper 或手动设置实体类上的只读属性注释,以便您的IDE 更容易理解这些。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多