gpt4 book ai didi

drupal - OrderBy 过滤掉 EntityFieldQuery 中带有空字段的行

转载 作者:行者123 更新时间:2023-12-04 20:44:28 25 4
gpt4 key购买 nike

例如,我有一个 EFQ 请求,如:

$query  ->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'contenttype')
->propertyCondition('status', 1)
->propertyCondition('language', $language->language, '=')
->fieldOrderBy('field_date', 'value', 'DESC')
->fieldOrderBy('field_code', 'value', 'DESC')
field_code可以为空。当我按此字段排序时,它将排除所有获得空值的行。如何避免这种行为并让他们留在结果中?

最佳答案

我最近不得不通过使用 db_select() 并仅将 db_or() 传递给 isNull 和 isNotNull 来解决与此类似的问题。我认为 EFQ 不够灵活,无法满足您的需求。沿着这条线的东西应该工作:

$query = db_select('node', 'n')
->fields('n')
->condition('n.type', 'contenttype')
->condition('n.status', 1)
->leftJoin('field_data_field_code', 'c', 'n.nid = c.entity_id')
->fields('c');

$db_or = db_or();
$db_or->isNull('c.field_code_value');
$db_or->isNotNull('c.field_code_value');

$query->condition($db_or);

$query->orderBy('c.field_code_value', 'DESC');

$results = $query->execute()->fetchAllAssoc('nid');

if ($results) {
$nodes = node_load_multiple(array_keys($results));
return $nodes;
}

不过有一个问题 - 为什么您要尝试按示例中的 2 个不同字段进行排序?

关于drupal - OrderBy 过滤掉 EntityFieldQuery 中带有空字段的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20541107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com