DDC-1705: BasicEntityPersister throws error undefined index #2354

Closed
doctrinebot opened this Issue Mar 15, 2012 · 3 comments

2 participants

@doctrinebot

Jira issue originally created by user vigor_bg:

In the BasicEntityPersister in the _getInsertSQL function when you are foreaching the columns you make a check

if (isset($this->_columnTypes[$column]) &&
                        isset($this->*class->fieldMappings[$this->*class->fieldNames[$column]]['requireSQLConversion'])) {
                        $type = Type::getType($this->_columnTypes[$column]);
                        $placeholder = $type->convertToDatabaseValueSQL('?', $this->_platform);
                    }

the problem is in

  isset($this->*class->fieldMappings[$this->*class->fieldNames[$column]]['requireSQLConversion'])

because you are not checking if it is set

$this->_class->fieldNames[$column]

i got that problem when was saving ManyToOne association

@doctrinebot

Comment created by schwede:

I got the same error and used error handling to throw an exception of this notice:

PHP Fatal error: Uncaught exception 'ErrorException' with message 'Undefined index: currentPrice_id' in /usr/share/php/Doctrine/ORM/Persisters/BasicEntityPersister.php:1146
Stack trace:
#0 /usr/share/php/Doctrine/ORM/Persisters/BasicEntityPersister.php(1146): exceptionerrorhandler(8, 'Undefined index...', '/usr/share/php/...', 1146, Array)
#1 /usr/share/php/Doctrine/ORM/Persisters/BasicEntityPersister.php(225): Doctrine\ORM\Persisters\BasicEntityPersister->_getInsertSQL()
#2 /usr/share/php/Doctrine/ORM/UnitOfWork.php(896): Doctrine\ORM\Persisters\BasicEntityPersister->executeInserts()
#3 /usr/share/php/Doctrine/ORM/UnitOfWork.php(304): Doctrine\ORM\UnitOfWork->executeInserts(Object(Doctrine\ORM\Mapping\ClassMetadata))
#4 /usr/share/php/Doctrine/ORM/EntityManager.php(355): Doctrine\ORM\UnitOfWork->commit(NULL)
#5 /var/www/app/module/Application/src/Application/Entity/Model.php(29): Doctrine\ORM\EntityManager->flush()
#6 /var/www/app/module/Application/src/Application/Entity/ in /usr/share/php/Doctrine/ORM/Persisters/BasicEntityPersister.php on line 1146

My mappings look like this:

/****
 * 
 * @ORM\OneToMany(targetEntity="Price", mappedBy="product", cascade={"all"})
 * @ORM\OrderBy({"date" = "DESC"})
 */
protected $prices;

/****
 * @ORM\ManyToOne(targetEntity="Price", inversedBy="currentProducts",cascade={"all"})
 */
protected $currentPrice;
@doctrinebot

Comment created by @beberlei:

Fixed

@doctrinebot

Issue was closed with resolution "Fixed"

@beberlei beberlei was assigned by doctrinebot Dec 6, 2015
@doctrinebot doctrinebot added this to the 2.2.2 milestone Dec 6, 2015
@doctrinebot doctrinebot closed this Dec 6, 2015
@doctrinebot doctrinebot added the Bug label Dec 7, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment