Недопустимый аргумент DrupalDefaultEntityController, предоставленный для foreach


Последний час пытался разобраться с этим.

$query = new EntityFieldQuery();
$query -> entityCondition('entity_type', 'node')
       -> entityCondition('bundle', 'subscription');

$results = $query->execute();

if(isset($results['node'])) {
    $subscription_nids = array_keys($results['node']);
    $nodes = node_load_multiple($subscription_nids, TRUE);
    return $nodes;
} else {
    return FALSE;
}

Это очень простая версия всего запроса, но ошибка точно такая же:

Warning: Invalid argument supplied for foreach() in DrupalDefaultEntityController->buildQuery() (line 290 of /var/www/ml/data/www/ml.mailapproved.com/includes/entity.inc).

Я не понимаю, что здесь не так.

 1
Author: Cameron Ball, 2012-08-29

1 answers

2-й аргумент для node_load_multiple() представляет собой массив условий; в настоящее время вы предоставляете логическое значение, поэтому, когда функция buildQuery пытается выполнить итерацию по переменной, вы получаете предупреждение.

3-й аргумент заключается в сбросе кэша (я думаю, это то, что вы пытаетесь сделать), поэтому вызов должен быть:

$nodes = node_load_multiple($subscription_nids, array(), TRUE);
 2
Author: Clive, 2012-08-29 09:11:07