Doctrine2:懒惰加载失败,我必须重新定位该类



我有三个实体wallpost,专辑和照片。

  1. WallPost与专辑有许多与专辑的关系。
  2. 专辑与照片有一对一的关系。

当我在墙上发布照片时,数据将进入所有三个表。WallPost中的一张唱片,一张专辑中的一张和照片中的多个记录。

现在,当我使用

获取数据时
$wall_post_obj->getAlbum()->getId()

它显示ID,但是当我尝试获取其他任何信息时,例如

$wall_post_obj->getAlbum()->getName()

它返回null。

这仅在我从专辑中删除一张照片时才发生。

要使它起作用,我必须使用查询查询重新定位。这样:$em->find('Entitiesalbum',$id);


额外信息:

$ wall_post_obj来自以下查询:

        $qb_1 = $em->createQueryBuilder();
        $q_1 = $qb_1->select('wp, fromUsr.id, 
                              fromUsr.professional_image, 
                              fromUsr.gender, 
                              fromUsr.firstname, 
                              fromUsr.lastname')
        ->from( 'Entitieswall_post', 'wp' )
        ->LeftJoin( 'wp.wall_postsFrom_user', 'fromUsr' )
        ->where( 'wp.id IN (:selected_wp_ids_r)' )
        ->setParameter( 'selected_wp_ids_r', $selected_wp_ids_r )
        ->orderBy( 'wp.last_activity_datetime', 'DESC' );
        // wallpost Comments join
        $q_1->addSelect( 'wall_comments, comment_user' );
        $q_1->LeftJoin( 'wp.wall_postsComment', 'wall_comments' );
        $q_1->LeftJoin( 'wall_comments.commentsIlook_user', 'comment_user' );
        // wallpost Likes join
        $q_1->addSelect( 'likes' );
        $q_1->LeftJoin( 'wp.wall_postsLikes', 'likes' );
        $q_1->LeftJoin( 'likes.likesLiked_by', 'likedByUser' );
        $q_1 = $q_1->getQuery()->getResult ();

循环中调用代码:

foreach( ...  )
{
     $wall_post_obj->getAlbum()
}

,但偶然地将$ em-> clear()放置在循环末端。

$ em-> clear()清除当前对象的数据。因此,$ em-> refresh()将不起作用。

相关内容

  • 没有找到相关文章

最新更新