我使用Drupal 7。 这段代码:
$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':SELECT field_data_field_user_first_name0.entity_type AS entity_type,...”
如果我删除->fieldCondition('field_user_first_name', 'value', $str, 'RLIKE')
或->addTag('node_access')
- 没有错误。
由于
答案 0 :(得分:0)
fieldCondition
:
->fieldCondition('field_user', 'first_name', $str, 'RLIKE')
答案 1 :(得分:0)
我遇到了类似的问题。 我将node_access标记添加到查询中,我无法将其删除 模块依赖它来影响全局的站点查询。 我不得不添加一个fieldCondition,所以在我的情况下解决方案是 $ query-> addMetadata(' account',user_load(1));