代码之家  ›  专栏  ›  技术社区  ›  Daniel Girardi

CakePHP中的Api-Rest:如何将id字段(Bigint)返回为字符串而不是INT/Bigint?

  •  0
  • Daniel Girardi  · 技术社区  · 6 月前

    我在CakePHP 4.5中创建了一个REST API,所有的ID字段都是Bigint类型。有没有一种方法可以强制CakePHP在返回JSON之前将这些字段转换为字符串?

    有许多字段,编辑每个可能的返回函数是不切实际的。我考虑过在EntityTable或模型中定义这种转换。

    我试过了,但蛋糕仍然返回id为INT

    public function getSchema():TableSchema{
            $schema = parent::getSchema();
            $schema->setColumnType('id', 'string');
            return $schema;
        }
    
    1 回复  |  直到 6 月前
        1
  •  1
  •   Greg Schmidt    6 月前

    您可以创建 virtual fields 对于这些,请将原始字段添加到 _hidden 将实体中的数组和新的虚拟字段添加到 _virtual 阵列在那里。根据“许多字段”的数量,这对你来说可能可行,也可能不可行。

    如果这太过分了,我会考虑创建一个 AppEntity 您的所有实体都扩展而不是基础实体,并覆盖 get 功能从 EntityTrait