diff --git a/lib/Doctrine/ORM/Id/AssignedGenerator.php b/lib/Doctrine/ORM/Id/AssignedGenerator.php index 05c3790af..90a35fa12 100644 --- a/lib/Doctrine/ORM/Id/AssignedGenerator.php +++ b/lib/Doctrine/ORM/Id/AssignedGenerator.php @@ -53,14 +53,14 @@ class AssignedGenerator extends AbstractIdGenerator if (!$em->getUnitOfWork()->isInIdentityMap($value)) { throw ORMException::entityMissingForeignAssignedId($entity, $value); } - + // NOTE: Single Columns as associated identifiers only allowed - this constraint it is enforced. $identifier[$idField] = current($em->getUnitOfWork()->getEntityIdentifier($value)); } else { $identifier[$idField] = $value; } } else { - throw ORMException::entityMissingAssignedId($entity); + throw ORMException::entityMissingAssignedIdForField($entity, $idField); } } } else { @@ -71,17 +71,17 @@ class AssignedGenerator extends AbstractIdGenerator if (!$em->getUnitOfWork()->isInIdentityMap($value)) { throw ORMException::entityMissingForeignAssignedId($entity, $value); } - + // NOTE: Single Columns as associated identifiers only allowed - this constraint it is enforced. $identifier[$idField] = current($em->getUnitOfWork()->getEntityIdentifier($value)); } else { $identifier[$idField] = $value; } } else { - throw ORMException::entityMissingAssignedId($entity); + throw ORMException::entityMissingAssignedIdForField($entity, $idField); } } - + return $identifier; } -} \ No newline at end of file +} diff --git a/lib/Doctrine/ORM/ORMException.php b/lib/Doctrine/ORM/ORMException.php index aa9657552..c156893c5 100644 --- a/lib/Doctrine/ORM/ORMException.php +++ b/lib/Doctrine/ORM/ORMException.php @@ -34,7 +34,7 @@ class ORMException extends Exception return new self("It's a requirement to specify a Metadata Driver and pass it ". "to Doctrine\ORM\Configuration::setMetadataDriverImpl()."); } - + public static function entityMissingForeignAssignedId($entity, $relatedEntity) { return new self( @@ -46,15 +46,14 @@ class ORMException extends Exception ); } - public static function entityMissingAssignedId($entity) + public static function entityMissingAssignedIdForField($entity, $field) { - return new self("Entity of type " . get_class($entity) . " is missing an assigned ID. " . + return new self("Entity of type " . get_class($entity) . " is missing an assigned ID for field '" . $field . "'. " . "The identifier generation strategy for this entity requires the ID field to be populated before ". - "EntityManager#persist() is called. If you want automatically generated identifiers instead " . + "EntityManager#persist() is called. If you want automatically generated identifiers instead " . "you need to adjust the metadata mapping accordingly." ); } - public static function unrecognizedField($field) { return new self("Unrecognized field: $field"); @@ -130,8 +129,8 @@ class ORMException extends Exception "Unknown Entity namespace alias '$entityNamespaceAlias'." ); } - - public static function invalidEntityRepository($className) + + public static function invalidEntityRepository($className) { return new self("Invalid repository class '".$className."'. ". "it must be a Doctrine\ORM\EntityRepository.");