Symfony2表单提交错误(在提交之前设置关系)


Symfony2 form submission error (setting a relation before submitting)

这是我的粘贴:

https://gist.github.com/1026584

以上产生错误:

Fatal error: method_exists(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Proxies'JStoutMainBundleEntityLocationProxy" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /www/jstout/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php on line 2266 Call Stack: 0.0001 622816 1. {main}() /www/jstout/web/app_dev.php:0 0.0120 1391096 2. Symfony'Component'HttpKernel'Kernel->handle() /www/jstout/web/app_dev.php:21 0.0155 1643168 3. Symfony'Bundle'FrameworkBundle'HttpKernel->handle() /www/jstout/app/bootstrap.php.cache:612 0.0155 1643888 4. Symfony'Component'HttpKernel'HttpKernel->handle() /www/jstout/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/HttpKernel.php:44 0.0155 1643888 5. Symfony'Component'HttpKernel'HttpKernel->handleRaw() /www/jstout/app/bootstrap.php.cache:416 0.0808 3808568 6. call_user_func_array() /www/jstout/app/bootstrap.php.cache:438 0.0808 3808816 7. JStout'MainBundle'Controller'VendorController->signupAction() /www/jstout/app/bootstrap.php.cache:0 0.1496 5248224 8. JStout'MainBundle'Form'Vendor'SignupHandler->process() /www/jstout/src/JStout/MainBundle/Controller/VendorController.php:55 0.1994 6163232 9. Doctrine'ORM'EntityManager->flush() /www/jstout/src/JStout/MainBundle/Form/Vendor/SignupHandler.php:57 0.1994 6163232 10. Doctrine'ORM'UnitOfWork->commit() /www/jstout/vendor/doctrine/lib/Doctrine/ORM/EntityManager.php:328 0.1994 6163232 11. Doctrine'ORM'UnitOfWork->computeChangeSets() /www/jstout/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php:249 0.1998 6187424 12. Doctrine'ORM'UnitOfWork->computeChangeSet() /www/jstout/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php:505 0.2000 6196648 13. Doctrine'ORM'UnitOfWork->computeAssociationChanges() /www/jstout/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php:490 0.2000 6221624 14. Doctrine'ORM'UnitOfWork::objToStr() /www/jstout/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php:572 0.2000 6221752 15. method_exists() /www/jstout/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php:2266

如果我删除,错误就会消失

$vendor->setOwner($user)

这是一个错误,还是我不能将所有者设置为会话对象的原因?

您的User对象中有私有属性吗?

php函数serialize是在会话中插入对象时调用的,并且私有属性存在问题。你必须将这些私人财产转换为受保护的财产。