Php Zend query builder:我只需要根据用户在组中的成员身份获取用户的显示名称

Php Zend query builder:我只需要根据用户在组中的成员身份获取用户的显示名称,php,zend-framework,mysqli,socialengine,Php,Zend Framework,Mysqli,Socialengine,如果某个用户属于id为181的组,我希望只获取该用户的显示名称。我已经写了一个标准的续集代码来实现这一点,但是我真的很难将它转换成一个可用的Zend版本 $stmt = $userTable->select() ->setIntegrityCheck(false) ->from( array('u' => $userTable->info('name'))) ->joinLeft( array('gm' => $membershipTable

如果某个用户属于id为181的组,我希望只获取该用户的显示名称。我已经写了一个标准的续集代码来实现这一点,但是我真的很难将它转换成一个可用的Zend版本

$stmt = $userTable->select()
  ->setIntegrityCheck(false)
  ->from( array('u' => $userTable->info('name')))
  ->joinLeft( array('gm' => $membershipTable->info('name')), 'gm.user_id = u.user_id')
  ->joinLeft(array('g' => $groupsTable->info('name')), 'g.group_id = gm.resource_id')
  ->columns('u.displayname')
  ->where('g.group_id = ?', 181);

$result = $userTable->getAdapter()->fetchAll($stmt);
它不是返回我想要的小数据集,而是返回相当于SELECT*的值


任何帮助都将不胜感激。提前感谢。

通过在数组中添加列名,您可以轻松完成此操作

$stmt = $userTable->select()
  ->setIntegrityCheck(false)
  ->from( array('u' => $userTable->info('name')),array('u.username'))
  ->joinLeft( array('gm' => $membershipTable->info('name')), 'gm.user_id = u.user_id')
  ->joinLeft(array('g' => $groupsTable->info('name')), 'g.group_id = gm.resource_id')
  ->columns('u.displayname')
  ->where('g.group_id = ?', 181);

$result = $userTable->getAdapter()->fetchAll($stmt);
如果你不需要任何列,你可以这样做

->joinLeft(数组('gm'=>$membershipTable->info('name'),'gm.user\u id=u.user\u id',数组())