EntityFieldQuery работает неправильно в hook_cron

Я программирую новый модуль в своем проекте Drupal 7. в моем модуле hook_cron переопределяется.

в моей функции hook_cron, я хочу выбрать тип узла с определенным фильтром для поля cck.

Я использую EntityFieldQuery для выполнения запроса.

мой конкретный тип содержимого - «order_status»

вот первый код запроса.

$query->entityCondition('entity_type', 'node')
    ->propertyCondition('type', array('order_status'))
    ->propertyCondition('status', 1);
$result = $query->execute();
dpm($result);

этот код работает без проблем. он собирает все узлы с типом контента «order_status», который публикуется. (статус 1)

, но когда я хочу добавить новый фильтр cck в запрос, он не работает.

Я определил некоторые файлы cck для моего типа содержимого "order_status".

один из них field_order_status_cr_confirm тип этого поля является логическим (TRUE /FALSE или 1 | 0)

для добавления нового фильтра в мой предыдущий запрос я использовал этот код.

->fieldCondition('field_order_status_cr_confirm','value',1,'=');

, поэтому мой последний запрос

$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
    ->propertyCondition('type', array('order_status'))
    ->propertyCondition('status', 1)
    ->fieldCondition('field_order_status_cr_confirm','value',1,'=');
$result = $query->execute();
dpm($result);

, но этот код не работает. он ничего не возвращает. также я изменил значение field_order_status_cr_confirm на 1, но он все равно не возвращает никаких данных.

Знаете ли вы, что моя проблема?

здесь приведен результат функции dpm для одного узла типа "order_status". введите описание изображения здесь>> </p>

<p> Пожалуйста, помогите мне. </p></body></html>

4 голоса | спросил Mehrdad201 13 32013vEurope/Moscow11bEurope/MoscowWed, 13 Nov 2013 00:02:12 +0400 2013, 00:02:12

1 ответ


0

Мне пришлось объединить 2 изменения, чтобы заставить мой запрос работать в hook_cron:

  1. применить entityCondition вместо свойстваCondition в столбце типа
  2. используйте метод addMetaData (), как ранее упоминалось

код

  $query->entityCondition('entity_type', 'node')
    ->entityCondition('bundle', 'person')
    ->propertyCondition('title', '')
    ->range(0, 20)
    ->addMetaData('account', user_load(1));

вместо

  $query->entityCondition('entity_type', 'node')
    ->propertyCondition('type', 'person')
    ->propertyCondition('title', '')
    ->range(0, 20);

Apparenlty наша производственная среда действовала иначе, чем наша промежуточная среда, где addMetaData () было достаточным для решения этой проблемы.

ответил rawdesk.be 16 MarpmFri, 16 Mar 2018 18:00:05 +03002018-03-16T18:00:05+03:0006 2018, 18:00:05

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132