1

Doctrine 2 で 1 対 1 の自己参照関係を実装しようとしています。したがって、私のエンティティ Membro_model は次のとおりです。

<?php
/**
*
* @Entity
* @Table(name="tb_membro")
*/
class Membro_model
{
    /**
    * @Id @Column(type="integer")
    * @GeneratedValue(strategy="IDENTITY")
    */
    public $id = 0;

    /**
    * @Column(type="string", columnDefinition="VARCHAR(50) NOT NULL")
    */
    public $nome = 0;


    /**
    * @Column(type="string", columnDefinition="VARCHAR(50) NOT NULL")
    */
    public $email = 0;

    /**
    * @Column(type="string", columnDefinition="VARCHAR(12) NOT NULL")
    */
    public $login = 0;

   /**
    * @OneToOne(targetEntity="Membro_model")
    * @JoinColumn(name="patrocinador_id", referencedColumnName="id")
    **/
    public $patrocinador;

}

エンティティを永続化できます。データの復元に問題があります。フィールド patrocinador_id が NULL の場合、リカバリに問題はありませんが、フィールドが NULL でない場合、次のエラーが表示されます。

Fatal error: require(): Failed opening required 
'application//models/proxies\__CG__Membro_model.php' 
(include_path='.;C:\php\pear') in C:\Program Files\EasyPHP-DevServer-
13.1VC9\data\localweb\eliteapp\application\third_party\DoctrineORM-
2.2.2\libraries\Doctrine\ORM\Proxy\ProxyFactory.php on line 93

findOneBy を使用して回復しようとしています。

$membro = $this->doctrine->em->getRepository('Membro_model')->findOneBy(array('login' => $login));
4

0 に答える 0