我已经进入了我的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文件,因为注释工作正常。
任何想法?。
感谢。
答案 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
。
一般来说,获取一个权利的序列化程序配置文件名:
namespace
\
替换为.
.yml
并将该文件放入配置中定义的path
文件夹