From 3b9fd15dd6df78d396f37a88b0f0e1d75be61eb0 Mon Sep 17 00:00:00 2001 From: beberlei Date: Sat, 21 Nov 2009 12:11:30 +0000 Subject: [PATCH] DDC-154 - Commit patch by giorgiosironi which improves SchemaTool error messages. --- lib/Doctrine/ORM/Tools/SchemaTool.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/Doctrine/ORM/Tools/SchemaTool.php b/lib/Doctrine/ORM/Tools/SchemaTool.php index ef27f2ed2..994d1519c 100644 --- a/lib/Doctrine/ORM/Tools/SchemaTool.php +++ b/lib/Doctrine/ORM/Tools/SchemaTool.php @@ -326,7 +326,16 @@ class SchemaTool foreach ($mapping->getJoinColumns() as $joinColumn) { $column = array(); $column['name'] = $mapping->getQuotedJoinColumnName($joinColumn['name'], $this->_platform); - $column['type'] = Type::getType($foreignClass->getTypeOfColumn($joinColumn['referencedColumnName'])); + $referencedColumnName = $joinColumn['referencedColumnName']; + $referencedFieldName = $foreignClass->getFieldName($referencedColumnName); + if (!$foreignClass->hasField($referencedFieldName)) { + throw new \Doctrine\Common\DoctrineException( + "Column name `$referencedColumnName` referenced for relation from ". + "$mapping->sourceEntityName towards $mapping->targetEntityName does not exist." + ); + } + $column['type'] = Type::getType($foreignClass->getTypeOfField($referencedFieldName)); + $columns[$column['name']] = $column; $constraint['local'][] = $column['name']; $constraint['foreign'][] = $joinColumn['referencedColumnName'];