我是从Drupal6开始接触Drupal7的,在Drupal6中,我习惯于构建定制模块并使用标准的db_ query来查询CCK字段。在这样做的过程中,我能够使用JOINs和LOWER(REPLACE(n.title, ' ', '_')) = '%s'之类的东西。
我想知道是否有一种方法可以使用EntityFieldQuery来做到这两点。EFQ背后的概念看起来非常简单,但就字段条件而言,看起来我只能使用运算符检查特定字段的值。如果我想使用上面的代码来检查转换后的值是否等于我的值,该怎么办?
正在使用:
$query->entityCondition('bundle', array('article', 'page'));和
$query->propertyCondition('type', array('article', 'page', 'blog'));JOIN语句实际上是一样的吗?这两个语句是否都使用NID来联接各种内容类型?
谢谢,豪伊
发布于 2012-02-21 09:37:26
EntityFieldQuery的一个主要优点是它不关心你使用的是什么字段后端。要做到这一点,它不提供复杂的操作,因为它必须支持选项的子集,这些选项也适用于像MongoDB这样的后端。
如果您必须在SQL中对字段值执行如此复杂的查询,那么重新考虑您的字段模式可能会更好。
https://stackoverflow.com/questions/9363953
复制相似问题