Объясните, почему не выводит данные массива?

И так, учусь…

Пробую получить данные из раздела, использую приложение консоль.

вар дамп пустой… принт р тоже ничего не выводит, почему, подскажите начинающему.

<?php

$id = 12;

if(!$pages = $modx->getCollection('modResource', array(
    'parent' => $id,
    'template' => 9
))){return;}
    
foreach($pages as $doc => $id){
    var_dump ($doc);
}
fred Oushen
17 февраля 2016, 16:00
modx.pro
4 020
0

Комментарии: 11

fred Oushen
17 февраля 2016, 19:36
0
Пытаюсь получить ID документов в массив.
    Евгений Шеронов
    17 февраля 2016, 19:42
    +1
    Скорее всего нет шаблона с id = 9 у дочерних документов.
    Сергей Шлоков
    17 февраля 2016, 19:52
    +1
    А что он должен выводить, если пусто?
    if(!$pages = $modx->getCollection('modResource', array(
        'parent' => $id,
        'template' => 9
    ))){return 'Нет документов!';}
      fred Oushen
      18 февраля 2016, 00:44
      -1
      Так это с примера, а что надо писать туда???
    Sergey Pozhidaev
    18 февраля 2016, 07:53
    0
    Код рабочий, либо id родителя либо id шаблона указан неверно.
      Владимир Бабусенко
      18 февраля 2016, 15:02
      0
      Так выведутся все объкты
      foreach($pages as $doc => $id){
          var_dump ($doc);
      }
      Пиши лучше так с var_dump или c print_r:
      foreach($pages as $doc){
          var_dump ($doc->toArray());
      }
      Доступ к полю получишь через $doc->get('field');

      ЗЫ: А так Сергей правильно написал, посмотри, может у тебя ничего не находит, соответственно и выводить нечего.
        fred Oushen
        18 февраля 2016, 16:00
        0
        Спасибо за подсказки, заработало. Подскажите тогда вот что еще, пробуй в forteach сделать функцию получения значений TV. Ошибка говорит что такая функция есть… Бред какой то :)
          fred Oushen
          18 февраля 2016, 16:19
          0
          <?php
          $id = 12;
          
          if(!$pages = $modx->getCollection('modResource', array(
              'parent' => $id,
              'template' => 9
          ))){return;}
          
          function tvImg(){
              foreach($pages as $doc){
                  print_r ($doc->toArray()); 
              }
              return $doc;
          }
          
          $docs = tvImg();
          echo $docs;
          при выполнении получаю вот это, в данный момент, попытка через функцию вывести все что есть в foreach().

          Исходный код
          [2016-02-18 16:16:30] (WARN @ xxx.ru/core/components/console/processors/exec.class.php(15) : eval()'d code : 11)
          PHP notice: Undefined variable: pages
          [2016-02-18 16:16:30] (ERROR @ xxx.ru/core/components/console/processors/exec.class.php(15) : eval()'d code : 11)
          PHP warning: Invalid argument supplied for foreach()
          [2016-02-18 16:16:30] (WARN @ xxx.ru/core/components/console/processors/exec.class.php(15) : eval()'d code : 14)
          PHP notice: Undefined variable: doc
              fred Oushen
              18 февраля 2016, 18:49
              0
              Спс, помогло, но теперь не могу понять, как получить TV значения документов, ID которых я получил ??? Подскажите куда рыть…

              Рассматриваю это направление.
              $resource = $modx->getObject('modResource',array('pagetitle'=>'SomePage'));
              $val = $resource->getTVValue('name_of_tv');
              $val = $resource->getTVValue($id); // ID of the TV (not the document)
              Но оно не работает…
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            11