Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

prevent the validator to stop with an "undefined array index"-error w…

…hile validating a wrong inversedBy Attribute
  • Loading branch information...
commit f1571aeac373bcbc17ec3ebd133e78bbc1232e30 1 parent 93fcb74
@pscheit pscheit authored
Showing with 12 additions and 10 deletions.
  1. +12 −10 lib/Doctrine/ORM/Tools/SchemaValidator.php
View
22 lib/Doctrine/ORM/Tools/SchemaValidator.php
@@ -152,16 +152,18 @@ public function validateClass(ClassMetadataInfo $class)
}
// Verify inverse side/owning side match each other
- $targetAssoc = $targetMetadata->associationMappings[$assoc['inversedBy']];
- if ($assoc['type'] == ClassMetadataInfo::ONE_TO_ONE && $targetAssoc['type'] !== ClassMetadataInfo::ONE_TO_ONE){
- $ce[] = "If association " . $class->name . "#" . $fieldName . " is one-to-one, then the inversed " .
- "side " . $targetMetadata->name . "#" . $assoc['inversedBy'] . " has to be one-to-one as well.";
- } else if ($assoc['type'] == ClassMetadataInfo::MANY_TO_ONE && $targetAssoc['type'] !== ClassMetadataInfo::ONE_TO_MANY){
- $ce[] = "If association " . $class->name . "#" . $fieldName . " is many-to-one, then the inversed " .
- "side " . $targetMetadata->name . "#" . $assoc['inversedBy'] . " has to be one-to-many.";
- } else if ($assoc['type'] == ClassMetadataInfo::MANY_TO_MANY && $targetAssoc['type'] !== ClassMetadataInfo::MANY_TO_MANY){
- $ce[] = "If association " . $class->name . "#" . $fieldName . " is many-to-many, then the inversed " .
- "side " . $targetMetadata->name . "#" . $assoc['inversedBy'] . " has to be many-to-many as well.";
+ if (array_key_exists($assoc['inversedBy'], $targetMetadata->associationMappings)) {
+ $targetAssoc = $targetMetadata->associationMappings[$assoc['inversedBy']];
+ if ($assoc['type'] == ClassMetadataInfo::ONE_TO_ONE && $targetAssoc['type'] !== ClassMetadataInfo::ONE_TO_ONE){
+ $ce[] = "If association " . $class->name . "#" . $fieldName . " is one-to-one, then the inversed " .
+ "side " . $targetMetadata->name . "#" . $assoc['inversedBy'] . " has to be one-to-one as well.";
+ } else if ($assoc['type'] == ClassMetadataInfo::MANY_TO_ONE && $targetAssoc['type'] !== ClassMetadataInfo::ONE_TO_MANY){
+ $ce[] = "If association " . $class->name . "#" . $fieldName . " is many-to-one, then the inversed " .
+ "side " . $targetMetadata->name . "#" . $assoc['inversedBy'] . " has to be one-to-many.";
+ } else if ($assoc['type'] == ClassMetadataInfo::MANY_TO_MANY && $targetAssoc['type'] !== ClassMetadataInfo::MANY_TO_MANY){
+ $ce[] = "If association " . $class->name . "#" . $fieldName . " is many-to-many, then the inversed " .
+ "side " . $targetMetadata->name . "#" . $assoc['inversedBy'] . " has to be many-to-many as well.";
+ }
}
}
Please sign in to comment.
Something went wrong with that request. Please try again.