1

我有一个简单的问题,我经常使用 Doctrine 1.2 模型的数组序列化版本返回 CRUD 类型的 Ajax 请求。我希望能够在 execute() 结果之后简单地返回 toArray() 方法,但是,这将显示有关我不想公开的模型的数据。一个简单的例子是在我的用户模型上显示密码和盐。虽然我意识到这些已经是散列值,但我不希望它作为 JSON 响应返回。

我翻阅了 Doctrine 1.2 手册,但没有找到任何提供我正在寻找的功能类型的东西。我意识到我可以迭代结果以手动 unset() 我希望隐藏的列,但我希望有一个我忽略的更原生的解决方案。

4

1 回答 1

1

你为什么不建立你自己的toArray()

如果你想这样做,你必须扩展继承自所有 Base* 类的 sfDoctrineRecord 类。它在 doc 中有描述

你必须把configureDoctrine()里面config/ProjectConfiguration.class.php

然后你会有这样的课程:

class myDoctrineRecord extends sfDoctrineRecord
{
}

因此,您可以toArray()在此处轻松添加自定义:

class myDoctrineRecord extends sfDoctrineRecord
{
  public function toArray($deep = true, $prefixKey = false, array $excludeFields = array())
  {
    // do every thing like the original toArray
    // but when a column match one entry in $excludeFields, don't add it
  }
}

因此,当将toArray()方法与第三个参数的字段数组一起使用时,它们将被排除在结果之外。

于 2012-07-31T07:38:53.953 回答