推理学说中的阵营力学?

时间:2013-10-03 10:04:14

标签: json symfony doctrine-orm doctrine

我正在使用Propel很长一段时间,现在我想尝试Doctrine。 在我的Propel时代,我使用PropelObjectCollection::toArray(对于集合)或PropelObject::toArray()使用单个记录将PropelObject via数组转换为json。

在我的公司中,我们覆盖toArray方法,将虚拟列存储在数组中,然后存储json字符串。 例如:

public function toArray() {
  $arr = parent::toArray();
  $arr['full_name'] = $this->getFullName(); // full_name isnt part of the table, it's just a getter
  return $arr;
}

当我把它变成json时,我在我的json中有我的full_name属性,然后在我的Extjs存储对象中(我们使用extjs)。

现在我想尝试教义,但学说似乎不允许这样做。 我可以覆盖我的学说类中的函数或属性,或者我可以通过注释来执行此操作,如果我的Doctrine类只具有属性$ first_name,$ last_name和no $,是否可以生成带有properties ('first_name', 'last_name', 'full_name')的json全名 或者有解决方法吗?

感谢您的帮助

编辑: 如果您使用Annotations,我在JMSSerializerBundle中找到了一些东西:

@VirtualProperty

use JMS\Serializer\Annotation\VirtualProperty;

在我的Doctrine实体文件的顶部和一个示例方法

/**
 *
 * @VirtualProperty
 * @return string
 */
public function getFullName() {
    return $this->getName(). " mylastname";
}

我的json然后包含虚拟属性full_name

0 个答案:

没有答案