获取:Symfony \ Bundle \ FrameworkBundle \ DataCollector \ RequestDataCollector :: serialize()必须返回一个字符串或NULL

时间:2011-11-09 20:08:41

标签: symfony

我在Entity1文件中添加了几个字段,如:

/**
     * @var integer $typeid
     *
     * @ORM\Column(name="typeid", type="integer")
     */
    private $typeid;

并添加了getter和setter方法。

在我的控制器中,我使用以下方式获取数据:

$result = $entityManager->getRepository('MyBundle:Entity1')
->findby(array('year' => $year));

我将结果发送到名为'entities'的数组中的twig文件(例如) 在我的twig文件中,我遍历数组中的所有实体并显示 数据

我有两个例外:

1/2
ErrorException: Notice: serialize(): "id" returned as member variable from __sleep() but does not exist in /var/www/Symfony/vendor/symfony/src/Symfony/Component/HttpKernel/DataCollector/DataCollector.php line 29

2/2
Exception: Symfony\Bundle\FrameworkBundle\DataCollector\RequestDataCollector::serialize() must return a string or NULL

我是Symfony 2的新手,我不确定是什么时候发生的。我猜是新的领域 我在Entity文件中添加了一些问题。

1 个答案:

答案 0 :(得分:1)

将此代码添加到我的产品实体时出现同样的错误:

/**
 * @var Type $type
 *
 * @ORM\ManyToOne(targetEntity="Acme\StoreBundle\Entity\Product\Type")
 * @ORM\JoinColumn(name="type_id", referencedColumnName="id")
 */
private $type;

这是我的模板:

{% render "StoreBundle:Product:list" with { 'products': products } %}

但如果我改变模板:

{% for product in products %}
    <li>{{ product.name }}</li>
{% endfor %}

...或将水合模式更改为数组:

$products = $this->getDoctrine()
    ->getRepository('StoreBundle:Product')
    ->getQuery()
    ->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);

...错误不会发生