pdoResources поля в отдельные плейсхолдеры.
Возможно ли все поля, что вернул нам pdoResources по собственному классу вывести в отдельные плейсхолдеры?
Пример: есть поля id, uid, name, base как можно значения этих полей разместить в плейсхолдерах вида [[+smstring.id]] [[+smstring.uid]] [[+smstring.name]] [[+smstring.base]]
Я понимаю, что необходимо копать в сторону &toPlaceholder и &toSeparatePlaceholders но их применение вообще убирает какой либо вывод. Даже лог.
p.s. Почему не использовать tpl? Это страница с формой редактирования элемента кастомного класса во фронтенде. Форма редактирования работает на Formit и в ней есть плейсхолдеры Formit.
Пример: есть поля id, uid, name, base как можно значения этих полей разместить в плейсхолдерах вида [[+smstring.id]] [[+smstring.uid]] [[+smstring.name]] [[+smstring.base]]
[[!pdoResources?
&class=`A3pfrp`
&loadModels = `bstpfrp`
&leftJoin=`{
"Status": {
"class" : "A3pfrpStatus",
"on" : "A3pfrp.status_id = Status.id"
},
"Theme" : {
"class" : "A3pfrpThemeCategory",
"on" : "A3pfrp.theme_category_id = Theme.id"
}
}`
&select=`{
"A3pfrp": "*",
"Status": "name",
"Theme" : "category_name"
}`
&showLog=`1`
&sortby=`A3pfrp.id`
&sortdir=`ASC`
&limit=`0`
&showUnpublished=`0`
&where=`{"A3pfrp.id":[[!#get.docid:stripTags]]}`
]]Я понимаю, что необходимо копать в сторону &toPlaceholder и &toSeparatePlaceholders но их применение вообще убирает какой либо вывод. Даже лог.
p.s. Почему не использовать tpl? Это страница с формой редактирования элемента кастомного класса во фронтенде. Форма редактирования работает на Formit и в ней есть плейсхолдеры Formit.
Комментарии: 4
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Т.к. у нас готовый компонент с моделью, то для вывода всех полей в отдельные чанки можно обойтись без сниппета pdoResources/getResources.
Мой сниппет.
Хотелось бы понять какое решении более правильное? Консоль говорит что на выполнение данного сниппет ушло:
а подключение pdoTools конечно скушает немного памяти. Но я не уверен, что эта инфа из дополнения Console верна на 100%.
Буду очень рад, если кто выскажет комментарии по такому решению, и поправит, если что не так.
Вы спросили про pdoResources, поэтому и получили ответ завязанный на него. А свой сниппет — это даже правильнее в данном случае (не берусь судить о качестве кода в нём).
Это лог при вызове pdoResources.
А это при работе Console и запуска в нем кода из моего сниппета.
Если я правильно понимаю, то в первом случае мы подгружаем pdoTools и он уже создает xPDO запрос. А во втором случае мы используем стандартный механизм взаимодействия с xPDO modx через метод $modx->getObject()
Да, простите, я понимаю что вопрос был про решение через pdoTools а мой комментарий предлагает решение не через данный инструмент. Просто мне все еще трудно понимать. где лучше использовать готовые сниппеты, а где лучше писать свой. а комментарий с самописным сниппетом, для тех, кто вдруг будет потом искать решение подобной задачи. А то я знаю, как обидно найти в интернете то, как кто-то спросил пару лет назад как решить то, что тебе надо решить и последний комментарий в обсуждении: