Doctrine orm 条令2.0 findBy*-列包含下划线时不起作用

Doctrine orm 条令2.0 findBy*-列包含下划线时不起作用,doctrine-orm,Doctrine Orm,我有一个类,其中表中的一列包含下划线-uni_id 当我尝试查询时: $campus_at_uni = $this->em->getRepository('models\campus')->findByUni_id($campus->uni_id); 然后发生错误。我怀疑这是因为uni和if之间的下划线 有解决办法吗 <?php /** * CampusModel */ namespace models; /** * @Entity * @Tabl

我有一个类,其中表中的一列包含下划线-uni_id

当我尝试查询时:

$campus_at_uni  = $this->em->getRepository('models\campus')->findByUni_id($campus->uni_id);
然后发生错误。我怀疑这是因为uni和if之间的下划线

有解决办法吗

<?php
/**
 * CampusModel
 */

 namespace models;

/**
 * @Entity
 * @Table(name="campus")
 */ 
class Campus
{
    /** 
    * @Id
    * @Column(type="integer")
    * @GeneratedValue(strategy="AUTO")
    */
    public $id;

    /**
    * @Column(type="integer")
    */
    public $uni_id;

    /**
    * @Column(type="string")
    */
    public $name;

    /**
    * @Column(type="datetime")
    */
    public $date_created;

    /**
    * @Column(type="datetime")
    */
    public $date_modified;

}
?>

我找不到解决方法,因此最简单的答案是执行以下操作:

$campus_at_uni  = $this->em->getRepository('models\Campus')->findBy(array('uni_id'=>$campus->uni_id));

您可以在自定义存储库中实现方法findByUniId。

当然,但对于每种方法,您都需要这样做。您还可以编写自己的神奇方法,将findByStrStr解析为str_str。我知道,您必须在所有存储库中编写它,或者创建自己的基本存储库。