Symfony2 doctrine:generate:实体错误的方法名称

时间:2017-02-15 15:07:28

标签: php symfony doctrine-orm doctrine

我的实体类是:

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
private $id;

/**
 * @var \Doctrine\Common\Collections\Collection
 *
 * @ORM\ManyToMany(targetEntity="AppBundle\Entity\TipiVendita", inversedBy="idAgente")
 * @ORM\JoinTable(name="tipi_vendita_agenti",
 *   joinColumns={
 *     @ORM\JoinColumn(name="id_agente", referencedColumnName="id")
 *   },
 *   inverseJoinColumns={
 *     @ORM\JoinColumn(name="id_tipo_vendita", referencedColumnName="id")
 *   }
 * )
 */
private $idTipoVendita;

/**
 * Constructor
 */
public function __construct()
{
    $this->idTipoVendita = new \Doctrine\Common\Collections\ArrayCollection();
}

当我使用命令' doctrine:generate:entities'时,生成的方法被错误命名:

/**
 * Add idTipoVendita
 *
 * @param \AppBundle\Entity\TipiVendita $idTipoVendita
 * @return Agenti
 */
public function addIdTipoVenditum(\AppBundle\Entity\TipiVendita $idTipoVendita)
{
    $this->idTipoVendita[] = $idTipoVendita;

    return $this;
}

/**
 * Remove idTipoVendita
 *
 * @param \AppBundle\Entity\TipiVendita $idTipoVendita
 */
public function removeIdTipoVenditum(\AppBundle\Entity\TipiVendita $idTipoVendita)
{
    $this->idTipoVendita->removeElement($idTipoVendita);
}

/**
 * Get idTipoVendita
 *
 * @return \Doctrine\Common\Collections\Collection 
 */
public function getIdTipoVendita()
{
    return $this->idTipoVendita;
}

我如何使用addIdTipoVentita而不是addIdTipoVenditum,removeIdTipoVendita而不是removeIdTipoVenditum?

更新

问题在于,学说不能正确地生成我的实体!它使用doctrine inflector组件生成方法名称并添加这些后缀。如何以正确的方式配置它?

1 个答案:

答案 0 :(得分:0)

Riccardo,您应该用英语命名您的房产。 你应该知道你处于一个Object世界,你使用的是对象而不是object_ids。

因此,实体TipiVendita的名称应为SellType(英文,单数)。

虽然我知道`idTipoVendita'字段应该强制与SellType和Agents建立N-M关系,所以应该命名为sellTypes(英文,复数,因为它是一个集合)。

长话短篇idTipoVendita - 作为收藏的一个字段,被视为一个复数形式,并在idTipoVenditum中被单一化(就像“课程”和“课程”)。

最好的问候。