自定义实体类

时间:2015-06-23 09:24:51

标签: symfony jmsserializerbundle

我已经进入了我的symfony2项目,这是Bundles和framework之外的一个自定义实体。

我需要将json数据设置到此实体中,但我无法将正确的配置应用于用户yaml文件。

应用程序/配置/ config.yml

jms_serializer:
    metadata:
        auto_detection: true
        directories:
            CORE:
                namespace_prefix: "Core\Domain\Model"
                path: "%kernel.root_dir%/Resources/serializer/CORE"

应用程序/资源/串行器/ CORE / Model.Product.yml

Core\Domain\Model\Product\Product:
    properties:
        id:
            type: integer
        objectId:
            type: string
        name:
            type: string ...

这个捆绑包可能不适用于捆绑包外的实体吗?。

我总是看到错误消息:您必须为Core \ Domain \ Model \ Product \ Product :: $ id定义类型。

我认为JMSSerializerBundle不会读取yaml文件,因为注释工作正常。

任何想法?。

感谢。

1 个答案:

答案 0 :(得分:3)

app/config/config.yml中,请务必使用\\作为命名空间分隔符,而不是\

jms_serializer:
    metadata:
        auto_detection: true
        directories:
            CORE:
                namespace_prefix: "Core\\Domain\\Model"
                path: "%kernel.root_dir%/Resources/serializer/CORE"

否则,反斜杠将被视为以下字母的转义字符。

修改 还要确保正确命名JMS序列化程序配置。对于类Core\Domain\Model\Product\Product,您需要在配置的指定Product.Product.yml内部使用path文件。在您的示例中,您的文件名为Model.Product.yml

一般来说,获取一个权利的序列化程序配置文件名:

  1. 从类名
  2. 中删除配置中定义的namespace
  3. 将命名空间分隔符\替换为.
  4. 追加.yml并将该文件放入配置中定义的path文件夹