Zend 1.11.11 Доктрина 2.1.2 Инициализация ассоциативных прокси-сущностей - PullRequest
2 голосов
/ 18 октября 2011

У меня странная проблема с ассоциативным объектом, являющимся прокси-классом, и его методы всегда возвращают ноль. Я надеюсь, что кто-то может пролить немного света на эту тему, потому что это сводит меня с ума.

Я звоню по этому коду:

$arrRoleResources = $em->getRepository("AJFIT\Entity\UserRoleResources")->findAll();    

foreach($arrRoleResources as $roleResource) {
       $name = $roleResource->getRoleFk()->getName();   
} 

$ name всегда будет нулевым, даже если при отладке кода он инициализирует прокси-класс и $ _identifier с правильным первичным ключом.

UserRoleResources Entity:

namespace AJFIT\Entity;
/** 
 * UserRoleResources 
 * * @Table(name="user_role_resources") 
 * * @Entity(repositoryClass="AJFIT\Repository\UserRoleResources") 
 */ 
class UserRoleResources {     
   /**    
    * @var UserRoles    
    *    
    * @ManyToOne(targetEntity="UserRoles")    
    * @JoinColumn(name="role_fk", referencedColumnName="pk")    
    *     
    */     

    private $roleFk;
    /**    
     * Get roleFk    
     *    
     * @return UserRoles $roleFk    
     */     

    public function getRoleFk()    {        
         return $this->roleFk;    
    } 
} 

UserRole Entity:

namespace AJFIT\Entity;  

/**  
 * UserRoles  
 * * @Table(name="user_roles")  
 * * @Entity(repositoryClass="AJFIT\Repository\UserRoles")  
 */ 
 class UserRoles {     

     /**     
      * @var string $name    
      *
      * @Column(name="name", type="string", length=255)     
      */     

     private $name;      

     /**     
      * @var integer $pk     
      *     
      * @Column(name="pk", type="integer")     
      * @Id     
      * @GeneratedValue(strategy="IDENTITY")     
      */     

      private $pk;      

      /**     
       * Get name     
       *     
       * @return string $name     
       */     

       public function getName()     {         
           return $this->name;     
       } 
 } 

Я последовал примеру скомпилированного zf -ilerplate и могу опубликовать свой конфигурационный файл, если потребуется.

1 Ответ

1 голос
/ 19 октября 2011

Некоторые из ваших аннотаций выглядят немного неправильно.Попробуйте исправить это ...

Аннотация класса

Потеряйте лишние звездочки.

/** 
 * UserRoleResources 
 * 
 * @Table(name="user_role_resources") 
 * @Entity(repositoryClass="AJFIT\Repository\UserRoleResources") 
 */ 
class UserRoleResources {

Аннотация свойства

Поместите докблоки непосредственно над свойствами(без пустых строк)

/**    
 * @var UserRoles    
 *    
 * @ManyToOne(targetEntity="UserRoles")    
 * @JoinColumn(name="role_fk", referencedColumnName="pk")    
 */     
private $roleFk;
...