pdoResources и join по значению TV
Всем привет, нужно загрузить ресурсы, и подтянуть к ним кастомные данные из другого класса. Вроде все просто, но как указать название TV в «join on»?
"on": "modResource.TVarticleСat = Category.id"
{'pdoResources' | snippet : [
'parents' => $_modx->config['blogId'],
'includeTVs' => 'articleCat',
'toPlaceholder' => 'blogArchiveJson',
'where' => json_encode([
"id:NOT IN" => $hlIds
]),
'loadModels' => 'blog',
'class' => 'modResource',
'leftJoin' => '{
"Category": {
"class": "Category",
"on": "modResource.TVarticleСat = Category.id"
}
}',
'select' => '
modResource.pagetitle,
Category.id as cat_id,
Category.title as cat_title
',
'showLog' => 1,
'return' => 'json'
]}
Перепробовал вроде все: tv.articleCat, modResource.tv.articleCat, modResource.TVarticlecat, articleCat и так далее. Подскажите плз, как правильно Комментарии: 6
showLog что показывает?
Could not process query, error #1054: Unknown column 'modResource.TVarticleСat' in 'on clause'
как бы не называл TV — всегда эта ошибка. Если значение TV подставляю вручную (просто цифру ставлю) — тогда все работает правильно. Вот весь лог, если что (там учавствуют еще несколько полей, которые я убрал в запросе для упрощения)
как бы не называл TV — всегда эта ошибка. Если значение TV подставляю вручную (просто цифру ставлю) — тогда все работает правильно. Вот весь лог, если что (там учавствуют еще несколько полей, которые я убрал в запросе для упрощения)
0.0000930: Loaded model "blog" from "/core/components/blog/model/"
0.0000751: pdoTools loaded
0.0000298: xPDO query object created
0.0006292: Included list of tvs: mainImage, articleSnippetMainTitle, articleSnippetSubTitle, articleCat, blogEvent
0.0002899: leftJoined Category as Category
0.0002029: leftJoined modTemplateVarResource as TVmainimage
0.0002129: leftJoined modTemplateVarResource as TVarticlesnippetmaintitle
0.0001860: leftJoined modTemplateVarResource as TVarticlesnippetsubtitle
0.0001919: leftJoined modTemplateVarResource as TVarticlecat
0.0002239: leftJoined modTemplateVarResource as TVblogevent
0.0000219: Added selection of modResource:
modResource.pagetitle,
Category.id as cat_id,
Category.title as cat_title
0.0000060: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.mainImage`
0.0000050: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.articleSnippetMainTitle`
0.0000031: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.articleSnippetSubTitle`
0.0000031: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.articleCat`
0.0000041: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.blogEvent`
0.0000062: Replaced TV conditions
0.0005529: Processed additional conditions
0.0008540: Added where condition: id:NOT IN(14,11,12,13,11,11,11,11), modResource.parent:IN(8,11,12,13,14,15), modResource.published=1, modResource.deleted=0
0.0000060: Replaced TV conditions
0.0000820: Sorted by modResource.publishedon, DESC
0.0000021: Limited to 10, offset 0
0.0002198: SQL prepared "SELECT modResource.pagetitle, Category.id as cat_id, Category.title as cat_title, IFNULL(`TVmainimage`.`value`, '') AS `tv.mainImage`, IFNULL(`TVarticlesnippetmaintitle`.`value`, '') AS `tv.articleSnippetMainTitle`, IFNULL(`TVarticlesnippetsubtitle`.`value`, '') AS `tv.articleSnippetSubTitle`, IFNULL(`TVarticlecat`.`value`, '') AS `tv.articleCat`, IFNULL(`TVblogevent`.`value`, '') AS `tv.blogEvent` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_migx_blog_categories` `Category` ON tv.articleCat = Category.id LEFT JOIN `modx_site_tmplvar_contentvalues` `TVmainimage` ON `TVmainimage`.`contentid` = `modResource`.`id` AND `TVmainimage`.`tmplvarid` = 23 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVarticlesnippetmaintitle` ON `TVarticlesnippetmaintitle`.`contentid` = `modResource`.`id` AND `TVarticlesnippetmaintitle`.`tmplvarid` = 24 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVarticlesnippetsubtitle` ON `TVarticlesnippetsubtitle`.`contentid` = `modResource`.`id` AND `TVarticlesnippetsubtitle`.`tmplvarid` = 25 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVarticlecat` ON `TVarticlecat`.`contentid` = `modResource`.`id` AND `TVarticlecat`.`tmplvarid` = 33 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVblogevent` ON `TVblogevent`.`contentid` = `modResource`.`id` AND `TVblogevent`.`tmplvarid` = 34 WHERE ( `modResource`.`id` NOT IN (14,11,12,13,11,11,11,11) AND `modResource`.`parent` IN (8,11,12,13,14,15) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 ) ORDER BY modResource.publishedon DESC LIMIT 10 "
0.0023592: Could not process query, error #1054: Unknown column 'tv.articleCat' in 'on clause'
0.0058780: Total time
2 097 152: Memory usage
Итак, жмем на этой странице Ctrl + F и ищем:
1. сначала articleCat
2. потом articleСat
Далее исправляем косяки.
1. сначала articleCat
2. потом articleСat
Далее исправляем косяки.
Похоже, эта опечатка попала в код уже когда постил сюда. Еще раз попробовал все варианты (с правильной раскладкой) — не работает.
А так не сработает?
"on": "`tv.articleCat` = `Category`.`id`"
Поле выбирается с точкой «tv.articleCat», она воспринимается разделителем, выглядит как таблица tv, поле articleCat.
Нет, так то же самое…
Could not process query, error #1054: Unknown column 'tv.articleCat' in 'on clause'
На всякий случай попробовал так
«on»: "`modResource`.`tv.articleCat` = `Category`.`id`"
Тоже не работает…
Could not process query, error #1054: Unknown column 'tv.articleCat' in 'on clause'
На всякий случай попробовал так
«on»: "`modResource`.`tv.articleCat` = `Category`.`id`"
Тоже не работает…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.