Php symfony2原则中的延迟加载

Php symfony2原则中的延迟加载,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我在Symfony2框架(v2.3.23)中使用原则。我有两个实体:产品和制造商,具有一对多的单向关系。实体具有小写字段名。当我从存储库检索数据并尝试使用以下代码访问延迟加载的对象时: $repository = $this->getDoctrine ()->getRepository ( 'AtCompDbBundle:Product' ); $result = $repository->findById ( 1); $x = $result[0]->getManufa

我在Symfony2框架(v2.3.23)中使用原则。我有两个实体:
产品
制造商
,具有一对多的单向关系。实体具有小写字段名。当我从存储库检索数据并尝试使用以下代码访问延迟加载的对象时:

$repository = $this->getDoctrine ()->getRepository ( 'AtCompDbBundle:Product' );
$result = $repository->findById ( 1);
$x = $result[0]->getManufacturer ()->getName ();
我发现以下错误:

ContextErrorException: Notice: Undefined property: 
Proxies\__CG__\AtComp\DbBundle\Entity\Manufacturer::$Name in C:\project_dir\src\AtComp\DbBundle\Entity\Manufacturer.php line 54
我找到了一个可行的解决方法:将字段名改为以大写字母开头。但有没有办法强制doctrine代理对象查找以小写字母开头的字段名

以下是
产品
类别定义:

/**
 * @ORM\Entity(repositoryClass="AtComp\DbBundle\Repository\ProductRepository")
 * @ORM\Table(name="produkty")
 */
class Product {
    /**
     * @ORM\Column(type="integer", name="prod_id")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\ManyToOne(targetEntity="Manufacturer")
     * @ORM\JoinColumn(name="prod_producent_id", referencedColumnName="pr_id")
     */
    protected $manufacturer;

    /**
     * Get id
     *
     * @return integer
     */
    public function getId() {
        return $this->id;
    }

    /**
     * Set manufacturer
     *
     * @param \AtComp\DbBundle\Entity\Manufacturer $manufacturer            
     * @return Product
     */
    public function setManufacturer(\AtComp\DbBundle\Entity\Manufacturer $manufacturer = null) {
        $this->manufacturer = $manufacturer;

        return $this;
    }

    /**
     * Get manufacturer
     *
     * @return \AtComp\DbBundle\Entity\Manufacturer
     */
    public function getManufacturer() {
        return $this->manufacturer;
    }
}
以及制造商类别的定义:

/**
 * @ORM\Entity
 * @ORM\Table(name="producent")
 */
class Manufacturer
{
    /**
     * @ORM\Column(type="integer", name="pr_id")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    // CHANGE OF THE DEFINITION OF THIS FIELD INTO 
    //
    // protected $Name;
    //
    // SOLVES THE PROBLEM...
    /**
     * @ORM\Column(type="string", length=100, name="pr_name")
     */
    protected $name;

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->Id;
    }

    /**
     * Set name
     *
     * @param string $name
     * @return Manufacturer
     */
     public function setName($name)
    {
        $this->Name = $name;
        return $this;
    }

    /**
     * Get name
     *
     * @return string 
     */
    public function getName()
    {
        return $this->Name;
    }
}

属性的名称应为小写,请对set方法执行相同操作:

/**
 * Get name
 *
 * @return string 
 */
public function getName()
{
    return $this->name;
}

属性的名称应为小写,请对set方法执行相同操作:

/**
 * Get name
 *
 * @return string 
 */
public function getName()
{
    return $this->name;
}

属性的名称应为小写,请对set方法执行相同操作:

/**
 * Get name
 *
 * @return string 
 */
public function getName()
{
    return $this->name;
}

属性的名称应为小写,请对set方法执行相同操作:

/**
 * Get name
 *
 * @return string 
 */
public function getName()
{
    return $this->name;
}

你说得对,愚蠢的复制粘贴错误;/,谢谢你说得对,愚蠢的复制粘贴错误;/,谢谢你说得对,愚蠢的复制粘贴错误;/,谢谢你说得对,愚蠢的复制粘贴错误;/,谢谢