Details
Description
Hello guys, sorry for the bad English found the error during a necessity and would like to post the solution.
Below is an example of my yml relationamento a many to many.
manyToMany:
centroCustos:
targetEntity: Album\Entity\CentroCusto
cascade: ["persist", "merge"]
inversedBy: unidades
joinTable:
name: unidade_centro_custo
joinColumns:
idunidade:
referencedColumnName: idunidade
onDelete: cascade
inverseJoinColumns:
idcentrocusto:
referencedColumnName: idcentrocusto
idpais:
referencedColumnName: idpais
idmundo:
referencedColumnName: idmundo
onDelete: cascade
Well this example is generating this code.
/**
- @var \Doctrine\Common\Collections\ArrayCollection
* - @ORM\ManyToMany(targetEntity="Album\Entity\CentroCusto", inversedBy="unidades", cascade=
{"persist","merge"}
)
- @ORM\JoinTable(name="unidade_centro_custo",
- joinColumns=
{
* @ORM\JoinColumn(name="idunidade", referencedColumnName="idunidade", onDelete="cascade")
* }
,
- inverseJoinColumns= { * @ORM\JoinColumn(name="idcentrocusto", referencedColumnName="idcentrocusto") * @ORM\JoinColumn(name="idpais", referencedColumnName="idpais") * @ORM\JoinColumn(name="idmundo", referencedColumnName="idmundo", onDelete="cascade") * }
- )
*/
Notice that Doctrine 2 is not putting commas to separate JoinColumns.
So looking at the source code I found the following code and put it solved my problem.
The changes was performed in EntityGenerator.php line 1090.
$arrJoins = array();
foreach ($associationMapping['joinTable']['joinColumns'] as $joinColumn)
$lines[] = implode(",". PHP_EOL, $arrJoins);
$lines[] = $this->spaces . ' * },';
$lines[] = $this->spaces . ' * inverseJoinColumns={';
$arrJoinsInverse = array();
foreach ($associationMapping['joinTable']['inverseJoinColumns'] as $joinColumn)
$lines[] = implode(",". PHP_EOL, $arrJoinsInverse);
$lines[] = $this->spaces . ' * }';
$lines[] = $this->spaces . ' * )'; }
I hope you understand what I'm trying to say, for you do not know if this error occurred, but if there ocorrei is one possible solution.
Thank you.
Activity
| Field | Original Value | New Value |
|---|---|---|
| Description |
Hello guys, sorry for the bad English found the error during a necessity and would like to post the solution.
Below is an example of my yml relationamento a many to many. manyToMany: centroCustos: targetEntity: Album\Entity\CentroCusto cascade: ["persist", "merge"] inversedBy: unidades joinTable: name: unidade_centro_custo joinColumns: idunidade: referencedColumnName: idunidade onDelete: cascade inverseJoinColumns: idcentrocusto: referencedColumnName: idcentrocusto idpais: referencedColumnName: idpais idmundo: referencedColumnName: idmundo onDelete: cascade Well this example is generating this code. /** * @var \Doctrine\Common\Collections\ArrayCollection * * @ORM\ManyToMany(targetEntity="Album\Entity\CentroCusto", inversedBy="unidades", cascade={"persist","merge"}) * @ORM\JoinTable(name="unidade_centro_custo", * joinColumns={ * @ORM\JoinColumn(name="idunidade", referencedColumnName="idunidade", onDelete="cascade") * }, * inverseJoinColumns={ * @ORM\JoinColumn(name="idcentrocusto", referencedColumnName="idcentrocusto") * @ORM\JoinColumn(name="idpais", referencedColumnName="idpais") * @ORM\JoinColumn(name="idmundo", referencedColumnName="idmundo", onDelete="cascade") * } * ) */ Notice that Doctrine 2 is not putting commas to separate JoinColumns. So looking at the source code I found the following code and put it solved my problem. The changes was performed in EntityGenerator.php line 1090. $intNumbersJoinColumn = count($associationMapping['joinTable']['inverseJoinColumns']); foreach ($associationMapping['joinTable']['inverseJoinColumns'] as $joinColumn) { $strComma = ""; $intPositionJoinColumn = array_search($joinColumn, $associationMapping['joinTable']['inverseJoinColumns']); if($intNumbersJoinColumn > 1) { $strComma = ($intPositionJoinColumn < $intNumbersJoinColumn -1 ) ? "," : "" ; } $lines[] = $this->spaces . ' * ' . $this->generateJoinColumnAnnotation($joinColumn) . $strComma ; } I hope you understand what I'm trying to say, for you do not know if this error occurred, but if there ocorrei is one possible solution. Thank you. |
Hello guys, sorry for the bad English found the error during a necessity and would like to post the solution.
Below is an example of my yml relationamento a many to many. manyToMany: centroCustos: targetEntity: Album\Entity\CentroCusto cascade: ["persist", "merge"] inversedBy: unidades joinTable: name: unidade_centro_custo joinColumns: idunidade: referencedColumnName: idunidade onDelete: cascade inverseJoinColumns: idcentrocusto: referencedColumnName: idcentrocusto idpais: referencedColumnName: idpais idmundo: referencedColumnName: idmundo onDelete: cascade Well this example is generating this code. /** * @var \Doctrine\Common\Collections\ArrayCollection * * @ORM\ManyToMany(targetEntity="Album\Entity\CentroCusto", inversedBy="unidades", cascade={"persist","merge"}) * @ORM\JoinTable(name="unidade_centro_custo", * joinColumns={ * @ORM\JoinColumn(name="idunidade", referencedColumnName="idunidade", onDelete="cascade") * }, * inverseJoinColumns={ * @ORM\JoinColumn(name="idcentrocusto", referencedColumnName="idcentrocusto") * @ORM\JoinColumn(name="idpais", referencedColumnName="idpais") * @ORM\JoinColumn(name="idmundo", referencedColumnName="idmundo", onDelete="cascade") * } * ) */ Notice that Doctrine 2 is not putting commas to separate JoinColumns. So looking at the source code I found the following code and put it solved my problem. The changes was performed in EntityGenerator.php line 1090. $arrJoins = array(); foreach ($associationMapping['joinTable']['inverseJoinColumns'] as $joinColumn) { $arrJoins[] = $this->spaces . ' * ' . $this->generateJoinColumnAnnotation($joinColumn); } $lines[] = implode(", ". PHP_EOL, $arrJoins); } I hope you understand what I'm trying to say, for you do not know if this error occurred, but if there ocorrei is one possible solution. Thank you. |
| Description |
Hello guys, sorry for the bad English found the error during a necessity and would like to post the solution.
Below is an example of my yml relationamento a many to many. manyToMany: centroCustos: targetEntity: Album\Entity\CentroCusto cascade: ["persist", "merge"] inversedBy: unidades joinTable: name: unidade_centro_custo joinColumns: idunidade: referencedColumnName: idunidade onDelete: cascade inverseJoinColumns: idcentrocusto: referencedColumnName: idcentrocusto idpais: referencedColumnName: idpais idmundo: referencedColumnName: idmundo onDelete: cascade Well this example is generating this code. /** * @var \Doctrine\Common\Collections\ArrayCollection * * @ORM\ManyToMany(targetEntity="Album\Entity\CentroCusto", inversedBy="unidades", cascade={"persist","merge"}) * @ORM\JoinTable(name="unidade_centro_custo", * joinColumns={ * @ORM\JoinColumn(name="idunidade", referencedColumnName="idunidade", onDelete="cascade") * }, * inverseJoinColumns={ * @ORM\JoinColumn(name="idcentrocusto", referencedColumnName="idcentrocusto") * @ORM\JoinColumn(name="idpais", referencedColumnName="idpais") * @ORM\JoinColumn(name="idmundo", referencedColumnName="idmundo", onDelete="cascade") * } * ) */ Notice that Doctrine 2 is not putting commas to separate JoinColumns. So looking at the source code I found the following code and put it solved my problem. The changes was performed in EntityGenerator.php line 1090. $arrJoins = array(); foreach ($associationMapping['joinTable']['inverseJoinColumns'] as $joinColumn) { $arrJoins[] = $this->spaces . ' * ' . $this->generateJoinColumnAnnotation($joinColumn); } $lines[] = implode(", ". PHP_EOL, $arrJoins); } I hope you understand what I'm trying to say, for you do not know if this error occurred, but if there ocorrei is one possible solution. Thank you. |
Hello guys, sorry for the bad English found the error during a necessity and would like to post the solution.
Below is an example of my yml relationamento a many to many. manyToMany: centroCustos: targetEntity: Album\Entity\CentroCusto cascade: ["persist", "merge"] inversedBy: unidades joinTable: name: unidade_centro_custo joinColumns: idunidade: referencedColumnName: idunidade onDelete: cascade inverseJoinColumns: idcentrocusto: referencedColumnName: idcentrocusto idpais: referencedColumnName: idpais idmundo: referencedColumnName: idmundo onDelete: cascade Well this example is generating this code. /** * @var \Doctrine\Common\Collections\ArrayCollection * * @ORM\ManyToMany(targetEntity="Album\Entity\CentroCusto", inversedBy="unidades", cascade={"persist","merge"}) * @ORM\JoinTable(name="unidade_centro_custo", * joinColumns={ * @ORM\JoinColumn(name="idunidade", referencedColumnName="idunidade", onDelete="cascade") * }, * inverseJoinColumns={ * @ORM\JoinColumn(name="idcentrocusto", referencedColumnName="idcentrocusto") * @ORM\JoinColumn(name="idpais", referencedColumnName="idpais") * @ORM\JoinColumn(name="idmundo", referencedColumnName="idmundo", onDelete="cascade") * } * ) */ Notice that Doctrine 2 is not putting commas to separate JoinColumns. So looking at the source code I found the following code and put it solved my problem. The changes was performed in EntityGenerator.php line 1090. $arrJoins = array(); foreach ($associationMapping['joinTable']['inverseJoinColumns'] as $joinColumn) { $arrJoins[] = $this->spaces . ' * ' . $this->generateJoinColumnAnnotation($joinColumn); } $lines[] = implode(", ". PHP_EOL, $arrJoins); } I hope you understand what I'm trying to say, for you do not know if this error occurred, but if there ocorrei is one possible solution. Thank you. |
| Description |
Hello guys, sorry for the bad English found the error during a necessity and would like to post the solution.
Below is an example of my yml relationamento a many to many. manyToMany: centroCustos: targetEntity: Album\Entity\CentroCusto cascade: ["persist", "merge"] inversedBy: unidades joinTable: name: unidade_centro_custo joinColumns: idunidade: referencedColumnName: idunidade onDelete: cascade inverseJoinColumns: idcentrocusto: referencedColumnName: idcentrocusto idpais: referencedColumnName: idpais idmundo: referencedColumnName: idmundo onDelete: cascade Well this example is generating this code. /** * @var \Doctrine\Common\Collections\ArrayCollection * * @ORM\ManyToMany(targetEntity="Album\Entity\CentroCusto", inversedBy="unidades", cascade={"persist","merge"}) * @ORM\JoinTable(name="unidade_centro_custo", * joinColumns={ * @ORM\JoinColumn(name="idunidade", referencedColumnName="idunidade", onDelete="cascade") * }, * inverseJoinColumns={ * @ORM\JoinColumn(name="idcentrocusto", referencedColumnName="idcentrocusto") * @ORM\JoinColumn(name="idpais", referencedColumnName="idpais") * @ORM\JoinColumn(name="idmundo", referencedColumnName="idmundo", onDelete="cascade") * } * ) */ Notice that Doctrine 2 is not putting commas to separate JoinColumns. So looking at the source code I found the following code and put it solved my problem. The changes was performed in EntityGenerator.php line 1090. $arrJoins = array(); foreach ($associationMapping['joinTable']['inverseJoinColumns'] as $joinColumn) { $arrJoins[] = $this->spaces . ' * ' . $this->generateJoinColumnAnnotation($joinColumn); } $lines[] = implode(", ". PHP_EOL, $arrJoins); } I hope you understand what I'm trying to say, for you do not know if this error occurred, but if there ocorrei is one possible solution. Thank you. |
Hello guys, sorry for the bad English found the error during a necessity and would like to post the solution.
Below is an example of my yml relationamento a many to many. manyToMany: centroCustos: targetEntity: Album\Entity\CentroCusto cascade: ["persist", "merge"] inversedBy: unidades joinTable: name: unidade_centro_custo joinColumns: idunidade: referencedColumnName: idunidade onDelete: cascade inverseJoinColumns: idcentrocusto: referencedColumnName: idcentrocusto idpais: referencedColumnName: idpais idmundo: referencedColumnName: idmundo onDelete: cascade Well this example is generating this code. /** * @var \Doctrine\Common\Collections\ArrayCollection * * @ORM\ManyToMany(targetEntity="Album\Entity\CentroCusto", inversedBy="unidades", cascade={"persist","merge"}) * @ORM\JoinTable(name="unidade_centro_custo", * joinColumns={ * @ORM\JoinColumn(name="idunidade", referencedColumnName="idunidade", onDelete="cascade") * }, * inverseJoinColumns={ * @ORM\JoinColumn(name="idcentrocusto", referencedColumnName="idcentrocusto") * @ORM\JoinColumn(name="idpais", referencedColumnName="idpais") * @ORM\JoinColumn(name="idmundo", referencedColumnName="idmundo", onDelete="cascade") * } * ) */ Notice that Doctrine 2 is not putting commas to separate JoinColumns. So looking at the source code I found the following code and put it solved my problem. The changes was performed in EntityGenerator.php line 1090. $arrJoins = array(); foreach ($associationMapping['joinTable']['joinColumns'] as $joinColumn) { $arrJoins[] = $this->spaces . ' * ' . $this->generateJoinColumnAnnotation($joinColumn); } $lines[] = implode(",". PHP_EOL, $arrJoins); $lines[] = $this->spaces . ' * },'; $lines[] = $this->spaces . ' * inverseJoinColumns={'; $arrJoinsInverse = array(); foreach ($associationMapping['joinTable']['inverseJoinColumns'] as $joinColumn) { $arrJoinsInverse[] = $this->spaces . ' * ' . $this->generateJoinColumnAnnotation($joinColumn); } $lines[] = implode(",". PHP_EOL, $arrJoinsInverse); $lines[] = $this->spaces . ' * }'; $lines[] = $this->spaces . ' * )'; } I hope you understand what I'm trying to say, for you do not know if this error occurred, but if there ocorrei is one possible solution. Thank you. |
| Priority | Major [ 3 ] | Critical [ 2 ] |
| Assignee | Benjamin Eberlei [ beberlei ] | Fabio B. Silva [ fabio.bat.silva ] |
| Status | Open [ 1 ] | In Progress [ 3 ] |
| Status | In Progress [ 3 ] | Resolved [ 5 ] |
| Fix Version/s | 2.3 [ 10185 ] | |
| Resolution | Fixed [ 1 ] |
| Fix Version/s | 2.3.1 [ 10323 ] |