首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMSSerializerBundle和FOSUser不工作

JMSSerializerBundle和FOSUser不工作
EN

Stack Overflow用户
提问于 2015-09-17 08:35:39
回答 1查看 560关注 0票数 0

我只得到一个JSON结果,所有内容都来自FOSUser\User +来自我的CaseWorker公开的ID,但仅此而已!结果如下: {“电子邮件”:"tester@COM.de",“已启用”:true,"id":1} 它应该是这样的: {“电子邮件”:"tester@COM.de",“首名”:"Egon",“姓氏”:"Olsen","enabled":true,"id":1} 我做错什么了?

我读了[123.]并有了当前的设置。

我的全局配置有以下JMS和FOS条目:

代码语言:javascript
复制
#config.yml

...

fos_user:
    db_driver: orm
    firewall_name: default
    user_class: COMP\CalcBundle\Entity\CaseWorker

jms_serializer:
    metadata:
        auto_detection: true
        directories:
            FOSUserBundle:
                path: "@COMPCalcBundle/Resources/config/serializer/FOS"
                namespace_prefix: FOS\UserBundle

parameters:
    jms_serializer.serialized_name_annotation_strategy.class: JMS\Serializer\Naming\IdenticalPropertyNamingStrategy

用于隐藏FOS\User属性的YML如下所示:

代码语言:javascript
复制
# src\COMP\CalcBundle\Resources\config\serializer\FOS\Entity.User.yml

FOS\UserBundle\Model\User:
    exclusion_policy: ALL
    properties:
        email:
            expose: true
        enabled:
            expose: true

我的案例工作者实体如下所示:

代码语言:javascript
复制
# src\COMP\CalcBundle\Entity\CaseWorker.php

use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Model\User as BaseUser;
use JMS\Serializer\Annotation as JMS;

/**
 * CaseWorker
 *
 * @ORM\Table(name="caseWorker", options={"collate"="utf8_general_ci"})
 * @ORM\Entity
 * @JMS\ExclusionPolicy("all")
 */
class CaseWorker extends BaseUser
{
    /**
     * @var integer
     *
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue
     * @JMS\Expose
     */
    protected $id;

    /**
     * @var string
     *
     * @ORM\Column(type="string", length=80, nullable=true)
     * @JMS\Expose
     */
    private $firstname;

    /**
     * @var string
     *
     * @ORM\Column(type="string", length=80, nullable=true)
     * @JMS\Expose
     */
    private $surname;

    /**
     * @ORM\OneToMany(targetEntity="Event", mappedBy="caseworker")
     **/
    private $events;

    ...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-25 08:53:22

找到了!

问题是,序列化程序只序列化非空字段!因此,在我的例子中,实体没有名字和姓氏设置!

我希望这能帮到别人!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32625865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档