基本上我想反序列化json到用户对象。像传递到解串器这个FOSUserBundle反序列化为用户对象抛出“你必须定义一个类型”
$serializer = $this->get('jms_serializer');
$data = $serializer->deserialize($this->get('request')->getContent(),
'My\FooBundle\Entity\User', 'json');
请求数据:
{"id":2,"username":"[email protected]","username_canonical":"[email protected]", ... }
时抛出错误:
request.CRITICAL: Uncaught PHP Exception JMS\Serializer\Exception\RuntimeException: "You must define a type for FOS\UserBundle\Model\User::$username." at ...\vendor\jms\serializer\src\JMS\Serializer\GenericDeserializationVisitor.php line 170 [] []
我使用SF 2.3。是否有什么必须为fos用户类的反序列化设置?任何想法为什么我得到这个消息,以及如何解决它?
你应该看看[这个问题](http://stackoverflow.com/questions/12960141/jmsserializerbundle-no-control-over-third-party-meta-data)。我和FOSUserBundle有同样的问题,因为这些字段没有在你的My \ Foo \ Entity \ User模型中定义,而是在'FOS \ UserBundle \ Model \ User'模型中定义。 – tolgap