Symfony JMS序列化程序配置
我在config.yml中使用此选项:Symfony JMS序列化程序配置,symfony,configuration,yaml,jmsserializerbundle,jms-serializer,Symfony,Configuration,Yaml,Jmsserializerbundle,Jms Serializer,我在config.yml中使用此选项: # JMSSerializer Configuration jms_serializer: #parameters: #jms_serializer.camel_case_naming_strategy.class: JMS\Serializer\Naming\IdenticalPropertyNamingStrategy metadata: cache: file debug: "%kern
# JMSSerializer Configuration
jms_serializer:
#parameters:
#jms_serializer.camel_case_naming_strategy.class: JMS\Serializer\Naming\IdenticalPropertyNamingStrategy
metadata:
cache: file
debug: "%kernel.debug%"
file_cache:
dir: "%kernel.cache_dir%/serializer"
auto_detection: true
directories:
AppBundle:
namespace_prefix: "AppBundle"
path: "%kernel.root_dir%/config/serializer/AppBundle"
在Entity.Category.yml中:
AppBundle\Entity\Category:
exclusion_policy: ALL
但当我尝试发送请求时,我收到以下错误:
要定义的类AppBundle\Entity\Category需要元数据
在/var/www/test/app/config/serializer/AppBundle/Entity.Category.yml中
如何解决此问题?看起来您使用
%kernel.root\u dir%
获得的项目文件路径不正确。确保/var/www/test/app
是项目的正确路径。检查PHP\uuuu DIR\uuuuu
常量,并尝试用它所表示的内容以及您认为的路径替换“%kernel.root\u DIR%”
此外,与在配置文件中定义排除策略不同,您应该能够像这样注释实体,并根据需要公开内容:
use JMS\Serializer\Annotation as JMS;
/**
* Class ExampleEntity
*
* @JMS\ExclusionPolicy("all")
* @ORM\Entity()
*/
class ExampleEntity
{
}
已找到JMS批注。您忘记了第2行的
选项卡。路径正确,我如何使用yml在没有批注的情况下执行此操作?您使用的symfony版本是什么?如果是4.0或更高版本,则更改%kernel.root\u dir%
,路径应为%kernel.root\u dir%/Resources/serializer
。看看这个,我用的是symfony 3.4