我在config.yml中使用它:
let jsonObj = some JSON
let jobj = jsonObj.arrayValue
if !jobj.isEmpty {
let j = jobj.filter({ (json) -> Bool in
return json["country"].stringValue == "US"; })
print ("filterdData: \(j)")
}
这在Entity.Category.yml:
中# 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"
但是当我尝试发送请求时,我收到此错误:
要定义的类AppBundle \ Entity \ Category的预期元数据 在/var/www/test/app/config/serializer/AppBundle/Entity.Category.yml。
我该如何解决这个问题?
答案 0 :(得分:1)
你在2行忘了TAB
。
答案 1 :(得分:0)
使用%kernel.root_dir%
看起来您的项目文件路径不正确。确保/var/www/test/app
是项目的正确路径。检查你的PHP __DIR__
常量并尝试将`%kernel.root_dir%替换为所说的内容以及你认为路径应该是什么。
此外,您不应在配置文件中定义排除策略,而应该能够像这样注释您的实体并根据需要公开内容:
use JMS\Serializer\Annotation as JMS;
/**
* Class ExampleEntity
*
* @JMS\ExclusionPolicy("all")
* @ORM\Entity()
*/
class ExampleEntity
{
}
找到JMS注释here。