ErrorException: Catchable Fatal Error: объект класса не может быть преобразован в строку — вызвано выпадающим меню, но почему?

У меня есть следующий код, который извлекает слаги страниц из базы данных, необходимые для создания связанной подстраницы:

        $builder->add('subtocontentoptions', 'entity', array(
            'class' => 'ShoutAdminBundle:Content',
            'property' => 'slug',
            'query_builder' => function($repository) { 
                return $repository->createQueryBuilder('p')
                ->where('p.mainpage = :main')
                ->setParameter('main', '1')
                ->orderBy('p.created', 'ASC');
            }
        ));

Код работает, так как отображает раскрывающееся меню всех родительских страниц, которые у меня есть. Однако, когда я перехожу к сохранению данных в базу данных, мне выдается следующая ошибка:

ErrorException: Catchable Fatal Error: объект класса Shout\AdminBundle\Entity\Content не может быть преобразован в строку в C:\wamp\www\vendor\doctrine-dbal\lib\Doctrine\DBAL\Statement.php, строка 131

Я проверил содержимое файла сущностей Content, и вот объявляемая переменная:

/**
 * @var integer $subtocontentoptions
 *
 * @ORM\Column(name="SubToContentOptions", type="integer", nullable=false)
 */
private $subtocontentoptions;

И опустите файл сущности содержимого:

/**
 * Set subtocontentoptions
 *
 * @param integer $subtocontentoptions
 */
public function setSubtocontentoptions($subtocontentoptions)
{
    $this->subtocontentoptions = $subtocontentoptions;
}

/**
 * Get subtocontentoptions
 *
 * @return integer 
 */
public function getSubtocontentoptions()
{
    return $this->subtocontentoptions;
}

Остальная часть кода работает, как только это раскрывающееся меню будет удалено. Я не уверен, почему выпадающее меню вызывает эту ошибку?

Спасибо


person mickburkejnr    schedule 27.09.2011    source источник
comment
Каково значение параметров в раскрывающемся списке? Это соответствует значению int в таблице?   -  person Tjorriemorrie    schedule 28.09.2011
comment
Да, он использует поле Int (ID) таблицы. Я пытаюсь изменить это, чтобы использовать другое значение.   -  person mickburkejnr    schedule 28.09.2011
comment
попробуйте сделать subtocontentoptions защищенным, а не частным   -  person Reuven    schedule 29.09.2011
comment
Также найдите эту ошибку: doctrine-project.org/jira/browse/DDC- 1341 У вас есть обновление для нескольких таблиц?   -  person Vladislav Rastrusny    schedule 18.11.2011


Ответы (1)


У меня была такая же проблема с проектом sf2/doctrine2, реализация метода __toString решила эту проблему для меня:

public function __toString()
{
    return strval($this->id);
}
person ıɾuǝʞ    schedule 09.03.2012
comment
если внешний ключ равен нулю, это дает ошибку. не знаю почему. - person Basit; 04.05.2015