cakePHP3:在渲染之前更改实体成员名称

时间:2017-07-07 08:04:06

标签: entity cakephp-3.0

在将实体成员名称传递给视图之前,是否有一种优雅的方式来更改它?在我的例子中,我有一个实体产品。我的产品有一个成员application_id。我把它输出到json。现在我的前端开发人员希望将此值作为applicationId(无下划线)接收。

当我返回一个包含其他对象的相当复杂的结构时,我不想迭代整个结果集并在循环中更改成员名。所以我查看了实体并希望找到类似于$ _map的内容,我可以将成员名称映射到自定义名称,但我没有找到任何内容。

如果没有在beforeRender中使用循环,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

manual

  

将实体转换为JSON时,虚拟&隐藏的字段列表   适用。实体也以递归方式转换为JSON。这个   意味着如果你渴望加载实体及其关联CakePHP   将正确处理将关联数据转换为正确的数据   格式。

所以你可以用这种方式在你的Entoty中创建一个虚拟财产

protected $_virtual = ['ApplicationId'];

protected function _getapplicationId()
{
    return $this->application_id;
}

似乎有点反对蛋糕命名惯例,但它有效