DDC-2221: In YAML, joinColumn names are ignored in One to Many and Many To One relationships #2919

Closed
doctrinebot opened this Issue Jan 3, 2013 · 4 comments

2 participants

@doctrinebot

Jira issue originally created by user schow:

When using YAML configuration to define 1:M, M:1 relationships, the joinColumn.name entry is ignored and Doctrine tries to use the default *_id convention.

Using the Doctrine2 tutorial example, I created YAML mapping for the Bug entity:

config/yaml/Bug.dcm.yml

Bug:
type: entity
table: bugs
id:
id:
type: integer
generator:
strategy: AUTO
fields:
description:
type: text
created:
type: datetime
status:
type: string
manyToOne:
reporter:
targetEntity: User
inversedBy: reportedBugs
joinColumm:
name: reporterId
referencedColumnName: id
engineer:
targetEntity: User
inversedBy: assignedBugs
joinColumm:
name: engineerId
referencedColumnName: id
manyToMany:
products:
targetEntity: Product

I then tried to run list_bugs:

<?php
// list_bugs.php
require_once "bootstrap.php";

$dql = "SELECT b, e, r FROM Bug b JOIN b.engineer e JOIN b.reporter r ORDER BY b.created DESC";

$query = $em->createQuery($dql);
$query->setMaxResults(30);
$bugs = $query->getResult();

foreach($bugs AS $bug) {
echo $bug->getDescription()." - ".$bug->getCreated()->format('d.m.Y')."\n";
echo " Reported by: ".$bug->getReporter()->name."\n";
echo " Assigned to: ".$bug->getEngineer()->name."\n";
foreach($bug->getProducts() AS $product) {
echo " Platform: ".$product->getName()."\n";
}
echo "\n";

However, I get this error message:

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'b0.reporterid' in 'field list'' in /Library/WebServer/Documents/DoctrineTutorial/Doctrine/DBAL/Connection.php:646
Stack trace:
#0 /Library/WebServer/Documents/DoctrineTutorial/Doctrine/DBAL/Connection.php(646): PDO->query('SELECT b0_.id A...')
#1 /Library/WebServer/Documents/DoctrineTutorial/Doctrine/ORM/Query/Exec/SingleSelectExecutor.php(46): Doctrine\DBAL\Connection->executeQuery('SELECT b0_.id A...', Array, Array, NULL)
#2 /Library/WebServer/Documents/DoctrineTutorial/Doctrine/ORM/Query.php(264): Doctrine\ORM\Query\Exec\SingleSelectExecutor->execute(Object(Doctrine\DBAL\Connection), Array, Array)
#3 /Library/WebServer/Documents/DoctrineTutorial/Doctrine/ORM/AbstractQuery.php(737): Doctrine\ORM\Query->_doExecute()

@doctrinebot

Comment created by @ocramius:

It's "joinColumn", not "joinColumm"

@doctrinebot

Issue was closed with resolution "Invalid"

@doctrinebot

Comment created by schow:

...And that is why I should not be working on this when I'm barely awake. Sorry.

@doctrinebot

Comment created by @ocramius:

No prob :)

@Ocramius Ocramius was assigned by doctrinebot 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