Drupal 7 EntityFieldQuery在使用fieldCondition和addTag(';node#u access';时引发错误

Drupal 7 EntityFieldQuery在使用fieldCondition和addTag(';node#u access';时引发错误,drupal-7,Drupal 7,我使用Drupal7。 此代码: $query = new EntityFieldQuery(); $resFirstName = $query->entityCondition('entity_type', 'node') ->entityCondition('bundle', 'user') ->fieldCondition('field_user_first_name', 'value', $str, 'RLIKE')

我使用Drupal7。 此代码:

$query = new EntityFieldQuery();
$resFirstName = $query->entityCondition('entity_type', 'node')
            ->entityCondition('bundle', 'user')
            ->fieldCondition('field_user_first_name', 'value', $str, 'RLIKE')
            ->range(0, 15)
            ->addTag('node_access')
            ->execute();
当站点的用户不是管理员时抛出以下错误: “PDOException:SQLSTATE[42S22]:未找到列:1054未知列‘where子句’中的‘field_data_field_user_first_name0.nid’:选择field_data_field_user_first_name0.entity_type作为entity_type,” 如果我删除
->fieldCondition('field\u user\u first\u name','value',$str,'RLIKE')
->addTag('node\u access')
,则无错误


谢谢

我也遇到过类似的情况。我可以这样修改
fieldCondition
来解决它,同时保留所有其他条件和参数:

  ->fieldCondition('field_user', 'first_name', $str, 'RLIKE')

我遇到了类似的问题。 我已将node_访问标记添加到查询中,由于其他原因,我无法删除它 模块依赖it在全球范围内影响站点查询。 我必须添加一个fieldCondition,因此在我的情况下,解决方案是 $query->addMetadata('account',user_load(1))