如果我的实体使用GUID字段类型作为标识符,如何在 config_yml 中定义映射?
我有一个Symfony 2.7.3和FosElasticaBundle 3.1.4的项目。
我已经配置了映射,当我使用 populate 命令或编辑现有实体时,一切正常;但是在创建新实体时我得到了一个异常
"expected a simple value for field [_id] but found [START_OBJECT]]"
Checking the JSON response我注意到 _id 设置为空对象..."_id":{}...
。
Uuid 类已经有一个 __ toString 方法,我希望该方法可以解决这个问题,但我可能会遗漏一些东西。
fos_elastica:
clients:
default: { host: %elasticsearch_host%, port: %elasticsearch_port%, logger: true }
indexes:
app:
types:
user:
mappings:
name: ~
surname: ~
persistence:
driver: orm
model: AppBundle\Entity\User
provider: ~
listener: ~
finder: ~
谢谢。
答案 0 :(得分:0)
UUID / GUID字段没有特定的映射。
使用标准的Symfony属性访问器检索标识符,因此我的问题的解决方案是更改我的实体中的getId()
方法,并使其强制转换为字符串
public function getId()
{
return (string)$this->id;
}