1.11.11原则2.1.2初始化关联代理实体



我有这个奇怪的问题,一个关联实体是一个代理类,它的方法总是返回null。我希望有人能给我一点启示,因为它快把我逼疯了。

我调用这个代码:

$arrRoleResources = $em->getRepository("AJFITEntityUserRoleResources")->findAll();    
foreach($arrRoleResources as $roleResource) {
       $name = $roleResource->getRoleFk()->getName();   
} 

$name将始终为null,即使当我调试代码时,它初始化了代理类,并且$_identifier使用了正确的主键。

UserRoleResources实体:

namespace AJFITEntity;
/** 
 * UserRoleResources 
 * * @Table(name="user_role_resources") 
 * * @Entity(repositoryClass="AJFITRepositoryUserRoleResources") 
 */ 
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实体:

namespace AJFITEntity;  
/**  
 * UserRoles  
 * * @Table(name="user_roles")  
 * * @Entity(repositoryClass="AJFITRepositoryUserRoles")  
 */ 
 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-boilerplate预编译的例子,如果需要,我可以发布我的配置。

你的一些注释看起来有点错。尝试修复这些…

类注释

去掉多余的星号

/** 
 * UserRoleResources 
 * 
 * @Table(name="user_role_resources") 
 * @Entity(repositoryClass="AJFITRepositoryUserRoleResources") 
 */ 
class UserRoleResources {

属性注释

将docblock放置在属性的正上方(没有空行)

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

最新更新