Получение: Symfony \ Bundle \ FrameworkBundle \ DataCollector \ RequestDataCollector :: serialize () должно возвращать строку или NULL - PullRequest
2 голосов
/ 10 ноября 2011

Я добавил пару полей в мой файл Entity1, например:

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

И добавил для него метод получения и установки.

В моем контроллере я получаю данные, используя:

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

Я отправляю свой результат в файл ветки в массиве с именем 'entities' (скажем) В моем файле ветки я перебираю все объекты в массиве и отображаю данные.

Я получаю два исключения:

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 Ответ

1 голос
/ 27 января 2012

У меня такая же ошибка при добавлении к моему объекту Product этого кода:

/**
 * @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);

... ошибка не возникает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...