Skip to content

Loading…

DDC-1705: BasicEntityPersister throws error undefined index #2354

Closed
doctrinebot opened this Issue · 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
@doctrinebot doctrinebot added this to the 2.2.2 milestone
@doctrinebot doctrinebot closed this
@doctrinebot doctrinebot added the Bug label
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.