【问题标题】:Drupal 7: Query custom content type with no resultsDrupal 7:查询没有结果的自定义内容类型
【发布时间】:2019-08-19 17:13:39
【问题描述】:

我正在尝试在 Drupal 7 模块中查询名为播放器(机器名称)的自定义内容类型,直到一个小时前它似乎工作正常。我这边没有任何改变,但现在“选择”可以工作,当我删除所有条件时,但当我添加 fieldCondition 时,我得到空结果。

这是我的查询:

$query = new EntityFieldQuery;
$query->entityCondition('entity_type', 'node')
  ->entityCondition('bundle', 'players')
  ->fieldCondition('field_email_address', 'value', $email_address)
  ->fieldCondition('field_password', 'value', $password)
  ->range(0, 1);

$results = $query->execute();

我已经验证并重新验证了包名称、字段的每台机器名称以及传入的值,但是当我转储查询结果时,它们显示为空。

有什么想法吗?谢谢!

【问题讨论】:

  • 缺少$query->execute();,正常吗? drupal.org/docs/7/creating-custom-modules/howtos/…
  • 我只是没有将其添加到帖子中,而是对其进行了编辑以包含它。
  • 您是否转储了 $email_address 和 $password 值?如果你用几个值发出 sql 请求,你有结果吗?
  • 这似乎是一个权限问题。当我以管理员身份登录时,它可以工作,当我不是时,我无法将 fieldConditions 添加到查询中。有什么想法吗?

标签: drupal drupal-7


【解决方案1】:

好的,由于某些愚蠢的原因,您可以以未经身份验证的用户身份查询整个数据库,但不能使用 where 子句,因此您需要在 ->range(0) 之前添加 ->addMetaData('account', user_load(1)) ,1)。希望这对其他人有帮助。

【讨论】:

  • 是的,你救了我的命 :) Drupal 8 entityQuery 也是如此...
  • 不过,我必须承认,这似乎是一种解决方法,而不是一个适当的解决方案,所以我问了a question on drupal stackexchange
猜你喜欢
  • 2011-10-11
  • 2021-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
  • 2011-03-30
相关资源
最近更新 更多