【问题标题】:Doctrine Entity won't serialize with JMS SerializerDoctrine Entity 不会使用 JMS 序列化器进行序列化
【发布时间】:2015-08-05 16:29:18
【问题描述】:

我有一个不会使用 JMS 序列化器序列化的实体。它不会抛出任何错误,只是一个空白屏幕。如果我在它的任何相关实体中公开此实体,它会以空白页响应。我已经在这个问题上戳了一天多,这变得非常令人沮丧。什么会阻止实体被序列化 JMS Serializer?这是实体的sn-p。我可以向愿意在这里帮助我的任何人提供任何要求的材料。

<?php

namespace TMG\Api\ApiBundle\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;

use JMS\Serializer\Annotation as Serializer;


/**
 * Property
 *
 * @ORM\Table(name="Properties")
 * @ORM\Entity(repositoryClass="TMG\Api\ApiBundle\Entity\Repository\PropertyRepository")
 * @ORM\HasLifecycleCallbacks()
 *
 * @Serializer\ExclusionPolicy("all")
 */
 class Property
{
public function __construct()
{
    $this->featuredAmenities = [];
    $this->users = new ArrayCollection();
    $this->amenities = new ArrayCollection();
    $this->contracts = new ArrayCollection();
    $this->rates = new ArrayCollection();
    $this->photos = new ArrayCollection();
    $this->tollFrees = new ArrayCollection();
    $this->favorites = new ArrayCollection();
}

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 *
 * @Serializer\Expose
 */
private $id;

/**
 * @var string
 *
 * @ORM\Column(name="hash", type="string", length=8)
 *
 * @Serializer\Expose
 */
private $hash;

/**
 * @var string
 *
 * @ORM\Column(name="ax_number", type="string", length=40, unique=true)
 *
 * @Serializer\Expose
 */
private $axNumber;

/**
 * @var string
 *
 * @ORM\Column(name="property_number", type="string", length=40, nullable=true)
 *
 * @Serializer\Expose
 */
private $propertyNumber;

/**
 * @var string
 *
 * @ORM\Column(name="name", type="string", length=255)
 *
 * @Serializer\Expose
 */
private $name;

/**
 * @var string
 *
 * @ORM\Column(name="contact_name", type="string", length=255, nullable=true)
 *
 * @Serializer\Expose
 */
private $contactName;

/**
 * @var string
 *
 * @ORM\Column(name="email", type="string", length=255, nullable=true)
 *
 * @Serializer\Expose
 */
private $email;

/**
 * @var string
 *
 * @ORM\Column(name="fax", type="string", length=255, nullable=true)
 *
 * @Serializer\Expose
 */
private $fax;

//.....

【问题讨论】:

    标签: php symfony doctrine-orm jmsserializerbundle jms-serializer


    【解决方案1】:

    先尝试只暴露你的id来检查你是否有任何响应,如果没有更多错误,我建议你按照文档检查你的配置:http://jmsyst.com/bundles/JMSSerializerBundle

    【讨论】:

    • 我最终采用了该实体的先前版本并用它替换了当前版本。现在可以了。我仍然不知道它发生了什么。很奇怪。
    • 尝试查看PHP的日志:可能错误发生在输出到屏幕之前,但它无论如何都在日志中。
    猜你喜欢
    • 2016-03-02
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 2016-05-12
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多