ErrorException: Уловима фатална грешка: Обектът на класа не може да бъде преобразуван в низ - причинено от падащото меню, но защо?

Имам следния код, който извлича страниците от базата данни, които са необходими за създаване на свързана подстраница:

        $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 Фатална грешка: Обект от клас 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