我有两张桌子:
users - id, firstName, lastName
posts - id, title, content, user_id
我尝试使用原生查询加载实体:
$rsm = new ResultSetMapping;
$rsm->addEntityResult('Entity\Post', 'p');
$rsm->addFieldResult('p', 'id', 'id');
$rsm->addFieldResult('p', 'title', 'title');
$rsm->addMetaResult('p', 'user_id', 'user_id');
$sql = 'select p.id, p.title, p.user_id from posts p';
$query = $em->createNativeQuery($sql, $rsm);
$posts = $query->getResult();
主义加载"发布"实体,并填写"用户"关系,但"用户"的所有属性;实体为NULL。为什么它没有加载"用户"具有代理对象的实体?对于" addMetaResult"存在?
答案 0 :(得分:0)
实际上,如果您在" User"上调用get_class,那么您将看到它是一个学说代理。所有属性都为空,因为未加载代理。呼叫" getter"属性和教义之一上的方法(例如getFirstName())将加载类并填充所有其他属性。