Что даёт параметр loadModels в pdoResouces

Всем привет, больно не пинайте, сам я этим параметром никогда не пользовался, но сейчас думаю, что, видимо, из-за непонимания того, как он работает. Что значит загрузить модель? Куда и для чего? И какое это отношение имеет к выборке? Я думал там обычный запрос строится, а все модели modx и так знает, они же прописываются на этапе установки компонентов. В общем, кто знает и кому не лень, дайте разъяснения или пошлите туда где они есть)))
Артур
13 января 2021, 10:15
modx.pro
94
0
Поблагодарить автора Отправить деньги

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

Наумов Алексей
13 января 2021, 11:21
+2
Я написал некий компонент, в нем табличка с данными, назовем его Books.
pdoResources умеет строить запрос к любой таблице, но по-умолчанию делает это к modResource.

Как теперь заставить pdoResources выбрать данные с книгами? Правильно, указать параметр class = Books.
Но! MODX не знает о том, что у нас есть такой объект Books, вот параметр loadModels здесь нам и поможет, он заставит загрузить схему с объектом в память.
    Артур
    13 января 2021, 12:32
    0
    Я понял как это работает, спасибо, но как получается что MODX не знает про компонент Books. Ведь я могу в консоли получить
    $modx->getObject('Books', 1);
    Я понимаю, что pdoResources и getObject никак не связаны, но getObject не требует загружать модель, он же её как-то сам определяет. В целом это всё интересует меня только из любопытства, чтобы лучше понимать механизмы работы MODX, поэтому отвечать необязательно.
      Александр Мельник
      13 января 2021, 12:39
      +1
      Ведь я могу в консоли получить
      $modx->getObject('Books', 1);
      Скорее всего нет. Только если добавите путь к модели в системную переменную extension_packages
        Alexey
        13 января 2021, 12:47
        0
        Или подключить пакет в сниппете через addPackage.

        Так просто getObject не увидит его.
          Артур
          13 января 2021, 12:59
          0
          Речь идёт о том, что компонент установлен, а при установке extension_packages как правило дополняется.
            Александр Мельник
            13 января 2021, 13:17
            0
            Пример, который привел Алексей Наумов как раз про компонент, который не установлен, а про компонент который вы написали сами. Именно для таких случаев и нужен loadModel
              Alexey
              13 января 2021, 13:41
              +1
              Тут не соглашусь. Далеко не все компоненты прописываются в extension_packages. Зачем нагружать систему моделями, которые могут понадобиться лишь на одной-двух страницах?

              В этом случае логичнее подключать модели в сниппетах компонента. Или в классе.
                Артур
                13 января 2021, 14:01
                0
                Правильно ли я понимаю, если компонент есть в extension_packages, то я могу через pdoResources сделать выборку из его таблиц без параметра loadModels, а если компонента нет в extension_packages, то нужно использовать параметр loadModels?
                  Наумов Алексей
                  13 января 2021, 14:02
                  0
                  По идее да, все верно поняли.
                    Артур
                    13 января 2021, 14:17
                    0
                    В таком случае тему считаю закрытой, спасибо всем)))
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        10