Jira issue originally created by user alessandro1997:
Hi. I noticed a minor bug in the generate:entities* console task. I've got a *Region entity that had the following property:
* @ORM\OneToMany(targetEntity="District", mappedBy="region")
public function **construct()
$this->districts = new ArrayCollection();
When I ran the generate:entities task it created the following methods:
* Add districts
* @param Fenix\StudyBundle\Entity\District $districts
public function addDistricts(\Fenix\StudyBundle\Entity\District $districts)
$this->districts = $districts;
* Get districts
* @return Doctrine\Common\Collections\Collection
public function getDistricts()
The second method's name is correct, but what about addDistricts*? Since it allows me to add a single *District entity it should be as follows:
* Add district
* @param Fenix\StudyBundle\Entity\District $district
public function addDistrict(\Fenix\StudyBundle\Entity\District $district)
$this->districts = $district;
In other words, the term after "add" (as well as the parameter's name) should be the entity's name, not the property's one.
Comment created by @beberlei:
The problem is that making singular out of a word is not an easy task and i will not try to make this work somehow. The Entity Generator result is a helper, not necessarily generating the final result of a class. This is one case where the Code Generation will not nmake you happy, so just change it.
Comment created by alessandro1997:
Couldn't you just use the target Entity's name (and not the property's one) in the "add" method?
The shortname you mean? Yeah that would be an option you are right, i reopen the ticket
This is sort of a BC break for 2.1, however since this is just a tool and generating code i think its acceptable
Issue was closed with resolution "Fixed"
Thanks a lot :-)
Comment created by matthewmatician:
Another option for a semantic method name would be to use 'addTo' as the prefix, as in 'addToDistricts'.
The problem with using the target Entity's name (instead of the property's) is that sometimes you need to have multiple properties that map to the same target Entity.